<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns:yui="http://yuilibrary.com/rdf/1.0/yui.rdf#">
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
	<title>API: dragdrop   DragDropMgr.js  (YUI Library)</title>

	<link rel="stylesheet" type="text/css" href="assets/reset-fonts-grids-min.css" />
	<link rel="stylesheet" type="text/css" href="assets/api.css" />

    <script type="text/javascript" src="assets/api-js"></script>
    <script type="text/javascript" src="assets/ac-js"></script>
</head>

<body id="yahoo-com">

<div id="doc3" class="yui-t2">
	<div id="hd">
        <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
        <h3>Drag and Drop&nbsp; <span class="subtitle">2.9.0</span></h3>
        <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
            &gt; <a href="./module_dragdrop.html" title="dragdrop">dragdrop</a>
                
                 &gt; DragDropMgr.js (source view) 
        <form onsubmit="return false">
            <div id="propertysearch">
                Search: <input autocomplete="off" id="searchinput" />
                <div id="searchresults">
                    &nbsp;
                </div>
            </div>
        </form>
	</div>

	<div id="bd">
		<div id="yui-main">
			<div class="yui-b">
            <form action="#" name="yui-classopts-form" method="get" id="yui-classopts-form">
                <fieldset>
                    <legend>Filters</legend>
                <span class="classopts"><input type="checkbox" name="show_private" id="show_private" /> <label for="show_private">Show Private</label></span>
                <span class="classopts"><input type="checkbox" name="show_protected" id="show_protected" /> <label for="show_protected">Show Protected</label></span>
                <span class="classopts"><input type="checkbox" name="show_deprecated" id="show_deprecated" /> <label for="show_deprecated">Show Deprecated</label></span>
                </fieldset>
            </form>

                    <div id="srcout">
                        <style>
                            #doc3 .classopts { display:none; }
                        </style>
                        <div class="highlight"><pre><span class="cm">/**</span>
<span class="cm"> * The drag and drop utility provides a framework for building drag and drop</span>
<span class="cm"> * applications.  In addition to enabling drag and drop for specific elements,</span>
<span class="cm"> * the drag and drop elements are tracked by the manager class, and the</span>
<span class="cm"> * interactions between the various elements are tracked during the drag and</span>
<span class="cm"> * the implementing code is notified about these important moments.</span>
<span class="cm"> * @module dragdrop</span>
<span class="cm"> * @title Drag and Drop</span>
<span class="cm"> * @requires yahoo,dom,event</span>
<span class="cm"> * @namespace YAHOO.util</span>
<span class="cm"> */</span>

<span class="c1">// Only load the library once.  Rewriting the manager class would orphan </span>
<span class="c1">// existing drag and drop instances.</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">DragDropMgr</span><span class="p">)</span> <span class="p">{</span>

<span class="cm">/**</span>
<span class="cm"> * DragDropMgr is a singleton that tracks the element interaction for </span>
<span class="cm"> * all DragDrop items in the window.  Generally, you will not call </span>
<span class="cm"> * this class directly, but it does have helper methods that could </span>
<span class="cm"> * be useful in your DragDrop implementations.</span>
<span class="cm"> * @class DragDropMgr</span>
<span class="cm"> * @static</span>
<span class="cm"> */</span>
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">DragDropMgr</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>

    <span class="kd">var</span> <span class="nx">Event</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Event</span><span class="p">,</span>
        <span class="nx">Dom</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Dom</span><span class="p">;</span>

    <span class="k">return</span> <span class="p">{</span>
        <span class="cm">/**</span>
<span class="cm">        * This property is used to turn on global use of the shim element on all DragDrop instances, defaults to false for backcompat. (Use: YAHOO.util.DDM.useShim = true)</span>
<span class="cm">        * @property useShim</span>
<span class="cm">        * @type Boolean</span>
<span class="cm">        * @static</span>
<span class="cm">        */</span>
        <span class="nx">useShim</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="cm">/**</span>
<span class="cm">        * This property is used to determine if the shim is active over the screen, default false.</span>
<span class="cm">        * @private</span>
<span class="cm">        * @property _shimActive</span>
<span class="cm">        * @type Boolean</span>
<span class="cm">        * @static</span>
<span class="cm">        */</span>
        <span class="nx">_shimActive</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="cm">/**</span>
<span class="cm">        * This property is used when useShim is set on a DragDrop object to store the current state of DDM.useShim so it can be reset when a drag operation is done.</span>
<span class="cm">        * @private</span>
<span class="cm">        * @property _shimState</span>
<span class="cm">        * @type Boolean</span>
<span class="cm">        * @static</span>
<span class="cm">        */</span>
        <span class="nx">_shimState</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="cm">/**</span>
<span class="cm">        * This property is used when useShim is set to true, it will set the opacity on the shim to .5 for debugging. Use: (YAHOO.util.DDM._debugShim = true;)</span>
<span class="cm">        * @private</span>
<span class="cm">        * @property _debugShim</span>
<span class="cm">        * @type Boolean</span>
<span class="cm">        * @static</span>
<span class="cm">        */</span>
        <span class="nx">_debugShim</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="cm">/**</span>
<span class="cm">        * This method will create a shim element (giving it the id of yui-ddm-shim), it also attaches the mousemove and mouseup listeners to it and attaches a scroll listener on the window</span>
<span class="cm">        * @private</span>
<span class="cm">        * @method _sizeShim</span>
<span class="cm">        * @static</span>
<span class="cm">        */</span>
        <span class="nx">_createShim</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
            <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">&#39;Creating Shim Element&#39;</span><span class="p">,</span> <span class="s1">&#39;info&#39;</span><span class="p">,</span> <span class="s1">&#39;DragDropMgr&#39;</span><span class="p">);</span>
            <span class="kd">var</span> <span class="nx">s</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">&#39;div&#39;</span><span class="p">);</span>
            <span class="nx">s</span><span class="p">.</span><span class="nx">id</span> <span class="o">=</span> <span class="s1">&#39;yui-ddm-shim&#39;</span><span class="p">;</span>
            <span class="k">if</span> <span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">body</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">)</span> <span class="p">{</span>
                <span class="nb">document</span><span class="p">.</span><span class="nx">body</span><span class="p">.</span><span class="nx">insertBefore</span><span class="p">(</span><span class="nx">s</span><span class="p">,</span> <span class="nb">document</span><span class="p">.</span><span class="nx">body</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">);</span>
            <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                <span class="nb">document</span><span class="p">.</span><span class="nx">body</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">s</span><span class="p">);</span>
            <span class="p">}</span>
            <span class="nx">s</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s1">&#39;none&#39;</span><span class="p">;</span>
            <span class="nx">s</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">backgroundColor</span> <span class="o">=</span> <span class="s1">&#39;red&#39;</span><span class="p">;</span>
            <span class="nx">s</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">position</span> <span class="o">=</span> <span class="s1">&#39;absolute&#39;</span><span class="p">;</span>
            <span class="nx">s</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">zIndex</span> <span class="o">=</span> <span class="s1">&#39;99999&#39;</span><span class="p">;</span>
            <span class="nx">Dom</span><span class="p">.</span><span class="nx">setStyle</span><span class="p">(</span><span class="nx">s</span><span class="p">,</span> <span class="s1">&#39;opacity&#39;</span><span class="p">,</span> <span class="s1">&#39;0&#39;</span><span class="p">);</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">_shim</span> <span class="o">=</span> <span class="nx">s</span><span class="p">;</span>
            <span class="nx">Event</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="nx">s</span><span class="p">,</span> <span class="s2">&quot;mouseup&quot;</span><span class="p">,</span>   <span class="k">this</span><span class="p">.</span><span class="nx">handleMouseUp</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
            <span class="nx">Event</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="nx">s</span><span class="p">,</span> <span class="s2">&quot;mousemove&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">handleMouseMove</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
            <span class="nx">Event</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="nb">window</span><span class="p">,</span> <span class="s1">&#39;scroll&#39;</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">_sizeShim</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
        <span class="p">},</span>
        <span class="cm">/**</span>
<span class="cm">        * This method will size the shim, called from activate and on window scroll event</span>
<span class="cm">        * @private</span>
<span class="cm">        * @method _sizeShim</span>
<span class="cm">        * @static</span>
<span class="cm">        */</span>
        <span class="nx">_sizeShim</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
            <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_shimActive</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">&#39;Sizing Shim&#39;</span><span class="p">,</span> <span class="s1">&#39;info&#39;</span><span class="p">,</span> <span class="s1">&#39;DragDropMgr&#39;</span><span class="p">);</span>
                <span class="kd">var</span> <span class="nx">s</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_shim</span><span class="p">;</span>
                <span class="nx">s</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">height</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getDocumentHeight</span><span class="p">()</span> <span class="o">+</span> <span class="s1">&#39;px&#39;</span><span class="p">;</span>
                <span class="nx">s</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">width</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getDocumentWidth</span><span class="p">()</span> <span class="o">+</span> <span class="s1">&#39;px&#39;</span><span class="p">;</span>
                <span class="nx">s</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">top</span> <span class="o">=</span> <span class="s1">&#39;0&#39;</span><span class="p">;</span>
                <span class="nx">s</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">left</span> <span class="o">=</span> <span class="s1">&#39;0&#39;</span><span class="p">;</span>
            <span class="p">}</span>
        <span class="p">},</span>
        <span class="cm">/**</span>
<span class="cm">        * This method will create the shim element if needed, then show the shim element, size the element and set the _shimActive property to true</span>
<span class="cm">        * @private</span>
<span class="cm">        * @method _activateShim</span>
<span class="cm">        * @static</span>
<span class="cm">        */</span>
        <span class="nx">_activateShim</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
            <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">useShim</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">&#39;Activating Shim&#39;</span><span class="p">,</span> <span class="s1">&#39;info&#39;</span><span class="p">,</span> <span class="s1">&#39;DragDropMgr&#39;</span><span class="p">);</span>
                <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">_shim</span><span class="p">)</span> <span class="p">{</span>
                    <span class="k">this</span><span class="p">.</span><span class="nx">_createShim</span><span class="p">();</span>
                <span class="p">}</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">_shimActive</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
                <span class="kd">var</span> <span class="nx">s</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_shim</span><span class="p">,</span>
                    <span class="nx">o</span> <span class="o">=</span> <span class="s1">&#39;0&#39;</span><span class="p">;</span>
                <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_debugShim</span><span class="p">)</span> <span class="p">{</span>
                    <span class="nx">o</span> <span class="o">=</span> <span class="s1">&#39;.5&#39;</span><span class="p">;</span>
                <span class="p">}</span>
                <span class="nx">Dom</span><span class="p">.</span><span class="nx">setStyle</span><span class="p">(</span><span class="nx">s</span><span class="p">,</span> <span class="s1">&#39;opacity&#39;</span><span class="p">,</span> <span class="nx">o</span><span class="p">);</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">_sizeShim</span><span class="p">();</span>
                <span class="nx">s</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s1">&#39;block&#39;</span><span class="p">;</span>
            <span class="p">}</span>
        <span class="p">},</span>
        <span class="cm">/**</span>
<span class="cm">        * This method will hide the shim element and set the _shimActive property to false</span>
<span class="cm">        * @private</span>
<span class="cm">        * @method _deactivateShim</span>
<span class="cm">        * @static</span>
<span class="cm">        */</span>
        <span class="nx">_deactivateShim</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
            <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">&#39;Deactivating Shim&#39;</span><span class="p">,</span> <span class="s1">&#39;info&#39;</span><span class="p">,</span> <span class="s1">&#39;DragDropMgr&#39;</span><span class="p">);</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">_shim</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s1">&#39;none&#39;</span><span class="p">;</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">_shimActive</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span>
        <span class="p">},</span>
        <span class="cm">/**</span>
<span class="cm">        * The HTML element created to use as a shim over the document to track mouse movements</span>
<span class="cm">        * @private</span>
<span class="cm">        * @property _shim</span>
<span class="cm">        * @type HTMLElement</span>
<span class="cm">        * @static</span>
<span class="cm">        */</span>
        <span class="nx">_shim</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span>
        <span class="cm">/**</span>
<span class="cm">         * Two dimensional Array of registered DragDrop objects.  The first </span>
<span class="cm">         * dimension is the DragDrop item group, the second the DragDrop </span>
<span class="cm">         * object.</span>
<span class="cm">         * @property ids</span>
<span class="cm">         * @type {string: string}</span>
<span class="cm">         * @private</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">ids</span><span class="o">:</span> <span class="p">{},</span>

        <span class="cm">/**</span>
<span class="cm">         * Array of element ids defined as drag handles.  Used to determine </span>
<span class="cm">         * if the element that generated the mousedown event is actually the </span>
<span class="cm">         * handle and not the html element itself.</span>
<span class="cm">         * @property handleIds</span>
<span class="cm">         * @type {string: string}</span>
<span class="cm">         * @private</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">handleIds</span><span class="o">:</span> <span class="p">{},</span>

        <span class="cm">/**</span>
<span class="cm">         * the DragDrop object that is currently being dragged</span>
<span class="cm">         * @property dragCurrent</span>
<span class="cm">         * @type DragDrop</span>
<span class="cm">         * @private</span>
<span class="cm">         * @static</span>
<span class="cm">         **/</span>
        <span class="nx">dragCurrent</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span>

        <span class="cm">/**</span>
<span class="cm">         * the DragDrop object(s) that are being hovered over</span>
<span class="cm">         * @property dragOvers</span>
<span class="cm">         * @type Array</span>
<span class="cm">         * @private</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">dragOvers</span><span class="o">:</span> <span class="p">{},</span>

        <span class="cm">/**</span>
<span class="cm">         * the X distance between the cursor and the object being dragged</span>
<span class="cm">         * @property deltaX</span>
<span class="cm">         * @type int</span>
<span class="cm">         * @private</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">deltaX</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span>

        <span class="cm">/**</span>
<span class="cm">         * the Y distance between the cursor and the object being dragged</span>
<span class="cm">         * @property deltaY</span>
<span class="cm">         * @type int</span>
<span class="cm">         * @private</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">deltaY</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span>

        <span class="cm">/**</span>
<span class="cm">         * Flag to determine if we should prevent the default behavior of the</span>
<span class="cm">         * events we define. By default this is true, but this can be set to </span>
<span class="cm">         * false if you need the default behavior (not recommended)</span>
<span class="cm">         * @property preventDefault</span>
<span class="cm">         * @type boolean</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">preventDefault</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span>

        <span class="cm">/**</span>
<span class="cm">         * Flag to determine if we should stop the propagation of the events </span>
<span class="cm">         * we generate. This is true by default but you may want to set it to</span>
<span class="cm">         * false if the html element contains other features that require the</span>
<span class="cm">         * mouse click.</span>
<span class="cm">         * @property stopPropagation</span>
<span class="cm">         * @type boolean</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">stopPropagation</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span>

        <span class="cm">/**</span>
<span class="cm">         * Internal flag that is set to true when drag and drop has been</span>
<span class="cm">         * initialized</span>
<span class="cm">         * @property initialized</span>
<span class="cm">         * @private</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">initialized</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span>

        <span class="cm">/**</span>
<span class="cm">         * All drag and drop can be disabled.</span>
<span class="cm">         * @property locked</span>
<span class="cm">         * @private</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">locked</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span>

        <span class="cm">/**</span>
<span class="cm">         * Provides additional information about the the current set of</span>
<span class="cm">         * interactions.  Can be accessed from the event handlers. It</span>
<span class="cm">         * contains the following properties:</span>
<span class="cm">         *</span>
<span class="cm">         *       out:       onDragOut interactions</span>
<span class="cm">         *       enter:     onDragEnter interactions</span>
<span class="cm">         *       over:      onDragOver interactions</span>
<span class="cm">         *       drop:      onDragDrop interactions</span>
<span class="cm">         *       point:     The location of the cursor</span>
<span class="cm">         *       draggedRegion: The location of dragged element at the time</span>
<span class="cm">         *                      of the interaction</span>
<span class="cm">         *       sourceRegion: The location of the source elemtn at the time</span>
<span class="cm">         *                     of the interaction</span>
<span class="cm">         *       validDrop: boolean</span>
<span class="cm">         * @property interactionInfo</span>
<span class="cm">         * @type object</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">interactionInfo</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span>

        <span class="cm">/**</span>
<span class="cm">         * Called the first time an element is registered.</span>
<span class="cm">         * @method init</span>
<span class="cm">         * @private</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">init</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">initialized</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * In point mode, drag and drop interaction is defined by the </span>
<span class="cm">         * location of the cursor during the drag/drop</span>
<span class="cm">         * @property POINT</span>
<span class="cm">         * @type int</span>
<span class="cm">         * @static</span>
<span class="cm">         * @final</span>
<span class="cm">         */</span>
        <span class="nx">POINT</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span>

        <span class="cm">/**</span>
<span class="cm">         * In intersect mode, drag and drop interaction is defined by the </span>
<span class="cm">         * cursor position or the amount of overlap of two or more drag and </span>
<span class="cm">         * drop objects.</span>
<span class="cm">         * @property INTERSECT</span>
<span class="cm">         * @type int</span>
<span class="cm">         * @static</span>
<span class="cm">         * @final</span>
<span class="cm">         */</span>
        <span class="nx">INTERSECT</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span>

        <span class="cm">/**</span>
<span class="cm">         * In intersect mode, drag and drop interaction is defined only by the </span>
<span class="cm">         * overlap of two or more drag and drop objects.</span>
<span class="cm">         * @property STRICT_INTERSECT</span>
<span class="cm">         * @type int</span>
<span class="cm">         * @static</span>
<span class="cm">         * @final</span>
<span class="cm">         */</span>
        <span class="nx">STRICT_INTERSECT</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span>

        <span class="cm">/**</span>
<span class="cm">         * The current drag and drop mode.  Default: POINT</span>
<span class="cm">         * @property mode</span>
<span class="cm">         * @type int</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">mode</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span>

        <span class="cm">/**</span>
<span class="cm">         * Runs method on all drag and drop objects</span>
<span class="cm">         * @method _execOnAll</span>
<span class="cm">         * @private</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">_execOnAll</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">sMethod</span><span class="p">,</span> <span class="nx">args</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="k">in</span> <span class="k">this</span><span class="p">.</span><span class="nx">ids</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">j</span> <span class="k">in</span> <span class="k">this</span><span class="p">.</span><span class="nx">ids</span><span class="p">[</span><span class="nx">i</span><span class="p">])</span> <span class="p">{</span>
                    <span class="kd">var</span> <span class="nx">oDD</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">ids</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="nx">j</span><span class="p">];</span>
                    <span class="k">if</span> <span class="p">(</span><span class="o">!</span> <span class="k">this</span><span class="p">.</span><span class="nx">isTypeOfDD</span><span class="p">(</span><span class="nx">oDD</span><span class="p">))</span> <span class="p">{</span>
                        <span class="k">continue</span><span class="p">;</span>
                    <span class="p">}</span>
                    <span class="nx">oDD</span><span class="p">[</span><span class="nx">sMethod</span><span class="p">].</span><span class="nx">apply</span><span class="p">(</span><span class="nx">oDD</span><span class="p">,</span> <span class="nx">args</span><span class="p">);</span>
                <span class="p">}</span>
            <span class="p">}</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Drag and drop initialization.  Sets up the global event handlers</span>
<span class="cm">         * @method _onLoad</span>
<span class="cm">         * @private</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">_onLoad</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>

            <span class="k">this</span><span class="p">.</span><span class="nx">init</span><span class="p">();</span>

            <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;DragDropMgr onload&quot;</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">,</span> <span class="s2">&quot;DragDropMgr&quot;</span><span class="p">);</span>
            <span class="nx">Event</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="nb">document</span><span class="p">,</span> <span class="s2">&quot;mouseup&quot;</span><span class="p">,</span>   <span class="k">this</span><span class="p">.</span><span class="nx">handleMouseUp</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
            <span class="nx">Event</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="nb">document</span><span class="p">,</span> <span class="s2">&quot;mousemove&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">handleMouseMove</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
            <span class="nx">Event</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="nb">window</span><span class="p">,</span>   <span class="s2">&quot;unload&quot;</span><span class="p">,</span>    <span class="k">this</span><span class="p">.</span><span class="nx">_onUnload</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
            <span class="nx">Event</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="nb">window</span><span class="p">,</span>   <span class="s2">&quot;resize&quot;</span><span class="p">,</span>    <span class="k">this</span><span class="p">.</span><span class="nx">_onResize</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
            <span class="c1">// Event.on(window,   &quot;mouseout&quot;,    this._test);</span>

        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Reset constraints on all drag and drop objs</span>
<span class="cm">         * @method _onResize</span>
<span class="cm">         * @private</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">_onResize</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span>
            <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;window resize&quot;</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">,</span> <span class="s2">&quot;DragDropMgr&quot;</span><span class="p">);</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">_execOnAll</span><span class="p">(</span><span class="s2">&quot;resetConstraints&quot;</span><span class="p">,</span> <span class="p">[]);</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Lock all drag and drop functionality</span>
<span class="cm">         * @method lock</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">lock</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> <span class="k">this</span><span class="p">.</span><span class="nx">locked</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span> <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Unlock all drag and drop functionality</span>
<span class="cm">         * @method unlock</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">unlock</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> <span class="k">this</span><span class="p">.</span><span class="nx">locked</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span> <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Is drag and drop locked?</span>
<span class="cm">         * @method isLocked</span>
<span class="cm">         * @return {boolean} True if drag and drop is locked, false otherwise.</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">isLocked</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">locked</span><span class="p">;</span> <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Location cache that is set for all drag drop objects when a drag is</span>
<span class="cm">         * initiated, cleared when the drag is finished.</span>
<span class="cm">         * @property locationCache</span>
<span class="cm">         * @private</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">locationCache</span><span class="o">:</span> <span class="p">{},</span>

        <span class="cm">/**</span>
<span class="cm">         * Set useCache to false if you want to force object the lookup of each</span>
<span class="cm">         * drag and drop linked element constantly during a drag.</span>
<span class="cm">         * @property useCache</span>
<span class="cm">         * @type boolean</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">useCache</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span>

        <span class="cm">/**</span>
<span class="cm">         * The number of pixels that the mouse needs to move after the </span>
<span class="cm">         * mousedown before the drag is initiated.  Default=3;</span>
<span class="cm">         * @property clickPixelThresh</span>
<span class="cm">         * @type int</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">clickPixelThresh</span><span class="o">:</span> <span class="mi">3</span><span class="p">,</span>

        <span class="cm">/**</span>
<span class="cm">         * The number of milliseconds after the mousedown event to initiate the</span>
<span class="cm">         * drag if we don&#39;t get a mouseup event. Default=1000</span>
<span class="cm">         * @property clickTimeThresh</span>
<span class="cm">         * @type int</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">clickTimeThresh</span><span class="o">:</span> <span class="mi">1000</span><span class="p">,</span>

        <span class="cm">/**</span>
<span class="cm">         * Flag that indicates that either the drag pixel threshold or the </span>
<span class="cm">         * mousdown time threshold has been met</span>
<span class="cm">         * @property dragThreshMet</span>
<span class="cm">         * @type boolean</span>
<span class="cm">         * @private</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">dragThreshMet</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span>

        <span class="cm">/**</span>
<span class="cm">         * Timeout used for the click time threshold</span>
<span class="cm">         * @property clickTimeout</span>
<span class="cm">         * @type Object</span>
<span class="cm">         * @private</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">clickTimeout</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span>

        <span class="cm">/**</span>
<span class="cm">         * The X position of the mousedown event stored for later use when a </span>
<span class="cm">         * drag threshold is met.</span>
<span class="cm">         * @property startX</span>
<span class="cm">         * @type int</span>
<span class="cm">         * @private</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">startX</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span>

        <span class="cm">/**</span>
<span class="cm">         * The Y position of the mousedown event stored for later use when a </span>
<span class="cm">         * drag threshold is met.</span>
<span class="cm">         * @property startY</span>
<span class="cm">         * @type int</span>
<span class="cm">         * @private</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">startY</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span>

        <span class="cm">/**</span>
<span class="cm">         * Flag to determine if the drag event was fired from the click timeout and</span>
<span class="cm">         * not the mouse move threshold.</span>
<span class="cm">         * @property fromTimeout</span>
<span class="cm">         * @type boolean</span>
<span class="cm">         * @private</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">fromTimeout</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span>

        <span class="cm">/**</span>
<span class="cm">         * Each DragDrop instance must be registered with the DragDropMgr.  </span>
<span class="cm">         * This is executed in DragDrop.init()</span>
<span class="cm">         * @method regDragDrop</span>
<span class="cm">         * @param {DragDrop} oDD the DragDrop object to register</span>
<span class="cm">         * @param {String} sGroup the name of the group this element belongs to</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">regDragDrop</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">oDD</span><span class="p">,</span> <span class="nx">sGroup</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">initialized</span><span class="p">)</span> <span class="p">{</span> <span class="k">this</span><span class="p">.</span><span class="nx">init</span><span class="p">();</span> <span class="p">}</span>
            
            <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">ids</span><span class="p">[</span><span class="nx">sGroup</span><span class="p">])</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">ids</span><span class="p">[</span><span class="nx">sGroup</span><span class="p">]</span> <span class="o">=</span> <span class="p">{};</span>
            <span class="p">}</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">ids</span><span class="p">[</span><span class="nx">sGroup</span><span class="p">][</span><span class="nx">oDD</span><span class="p">.</span><span class="nx">id</span><span class="p">]</span> <span class="o">=</span> <span class="nx">oDD</span><span class="p">;</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Removes the supplied dd instance from the supplied group. Executed</span>
<span class="cm">         * by DragDrop.removeFromGroup, so don&#39;t call this function directly.</span>
<span class="cm">         * @method removeDDFromGroup</span>
<span class="cm">         * @private</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">removeDDFromGroup</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">oDD</span><span class="p">,</span> <span class="nx">sGroup</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">ids</span><span class="p">[</span><span class="nx">sGroup</span><span class="p">])</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">ids</span><span class="p">[</span><span class="nx">sGroup</span><span class="p">]</span> <span class="o">=</span> <span class="p">{};</span>
            <span class="p">}</span>

            <span class="kd">var</span> <span class="nx">obj</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">ids</span><span class="p">[</span><span class="nx">sGroup</span><span class="p">];</span>
            <span class="k">if</span> <span class="p">(</span><span class="nx">obj</span> <span class="o">&amp;&amp;</span> <span class="nx">obj</span><span class="p">[</span><span class="nx">oDD</span><span class="p">.</span><span class="nx">id</span><span class="p">])</span> <span class="p">{</span>
                <span class="k">delete</span> <span class="nx">obj</span><span class="p">[</span><span class="nx">oDD</span><span class="p">.</span><span class="nx">id</span><span class="p">];</span>
            <span class="p">}</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Unregisters a drag and drop item.  This is executed in </span>
<span class="cm">         * DragDrop.unreg, use that method instead of calling this directly.</span>
<span class="cm">         * @method _remove</span>
<span class="cm">         * @private</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">_remove</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">oDD</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">g</span> <span class="k">in</span> <span class="nx">oDD</span><span class="p">.</span><span class="nx">groups</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">if</span> <span class="p">(</span><span class="nx">g</span><span class="p">)</span> <span class="p">{</span>
                    <span class="kd">var</span> <span class="nx">item</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">ids</span><span class="p">[</span><span class="nx">g</span><span class="p">];</span>
                    <span class="k">if</span> <span class="p">(</span><span class="nx">item</span> <span class="o">&amp;&amp;</span> <span class="nx">item</span><span class="p">[</span><span class="nx">oDD</span><span class="p">.</span><span class="nx">id</span><span class="p">])</span> <span class="p">{</span>
                        <span class="k">delete</span> <span class="nx">item</span><span class="p">[</span><span class="nx">oDD</span><span class="p">.</span><span class="nx">id</span><span class="p">];</span>
                    <span class="p">}</span>
                <span class="p">}</span>
                
            <span class="p">}</span>
            <span class="k">delete</span> <span class="k">this</span><span class="p">.</span><span class="nx">handleIds</span><span class="p">[</span><span class="nx">oDD</span><span class="p">.</span><span class="nx">id</span><span class="p">];</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Each DragDrop handle element must be registered.  This is done</span>
<span class="cm">         * automatically when executing DragDrop.setHandleElId()</span>
<span class="cm">         * @method regHandle</span>
<span class="cm">         * @param {String} sDDId the DragDrop id this element is a handle for</span>
<span class="cm">         * @param {String} sHandleId the id of the element that is the drag </span>
<span class="cm">         * handle</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">regHandle</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">sDDId</span><span class="p">,</span> <span class="nx">sHandleId</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">handleIds</span><span class="p">[</span><span class="nx">sDDId</span><span class="p">])</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">handleIds</span><span class="p">[</span><span class="nx">sDDId</span><span class="p">]</span> <span class="o">=</span> <span class="p">{};</span>
            <span class="p">}</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">handleIds</span><span class="p">[</span><span class="nx">sDDId</span><span class="p">][</span><span class="nx">sHandleId</span><span class="p">]</span> <span class="o">=</span> <span class="nx">sHandleId</span><span class="p">;</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Utility function to determine if a given element has been </span>
<span class="cm">         * registered as a drag drop item.</span>
<span class="cm">         * @method isDragDrop</span>
<span class="cm">         * @param {String} id the element id to check</span>
<span class="cm">         * @return {boolean} true if this element is a DragDrop item, </span>
<span class="cm">         * false otherwise</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">isDragDrop</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">id</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">return</span> <span class="p">(</span> <span class="k">this</span><span class="p">.</span><span class="nx">getDDById</span><span class="p">(</span><span class="nx">id</span><span class="p">)</span> <span class="p">)</span> <span class="o">?</span> <span class="kc">true</span> <span class="o">:</span> <span class="kc">false</span><span class="p">;</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Returns the drag and drop instances that are in all groups the</span>
<span class="cm">         * passed in instance belongs to.</span>
<span class="cm">         * @method getRelated</span>
<span class="cm">         * @param {DragDrop} p_oDD the obj to get related data for</span>
<span class="cm">         * @param {boolean} bTargetsOnly if true, only return targetable objs</span>
<span class="cm">         * @return {DragDrop[]} the related instances</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">getRelated</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">p_oDD</span><span class="p">,</span> <span class="nx">bTargetsOnly</span><span class="p">)</span> <span class="p">{</span>
            <span class="kd">var</span> <span class="nx">oDDs</span> <span class="o">=</span> <span class="p">[];</span>
            <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="k">in</span> <span class="nx">p_oDD</span><span class="p">.</span><span class="nx">groups</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">j</span> <span class="k">in</span> <span class="k">this</span><span class="p">.</span><span class="nx">ids</span><span class="p">[</span><span class="nx">i</span><span class="p">])</span> <span class="p">{</span>
                    <span class="kd">var</span> <span class="nx">dd</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">ids</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="nx">j</span><span class="p">];</span>
                    <span class="k">if</span> <span class="p">(</span><span class="o">!</span> <span class="k">this</span><span class="p">.</span><span class="nx">isTypeOfDD</span><span class="p">(</span><span class="nx">dd</span><span class="p">))</span> <span class="p">{</span>
                        <span class="k">continue</span><span class="p">;</span>
                    <span class="p">}</span>
                    <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">bTargetsOnly</span> <span class="o">||</span> <span class="nx">dd</span><span class="p">.</span><span class="nx">isTarget</span><span class="p">)</span> <span class="p">{</span>
                        <span class="nx">oDDs</span><span class="p">[</span><span class="nx">oDDs</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="nx">dd</span><span class="p">;</span>
                    <span class="p">}</span>
                <span class="p">}</span>
            <span class="p">}</span>

            <span class="k">return</span> <span class="nx">oDDs</span><span class="p">;</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Returns true if the specified dd target is a legal target for </span>
<span class="cm">         * the specifice drag obj</span>
<span class="cm">         * @method isLegalTarget</span>
<span class="cm">         * @param {DragDrop} the drag obj</span>
<span class="cm">         * @param {DragDrop} the target</span>
<span class="cm">         * @return {boolean} true if the target is a legal target for the </span>
<span class="cm">         * dd obj</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">isLegalTarget</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">oDD</span><span class="p">,</span> <span class="nx">oTargetDD</span><span class="p">)</span> <span class="p">{</span>
            <span class="kd">var</span> <span class="nx">targets</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getRelated</span><span class="p">(</span><span class="nx">oDD</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
            <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="nx">len</span><span class="o">=</span><span class="nx">targets</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span><span class="nx">i</span><span class="o">&lt;</span><span class="nx">len</span><span class="p">;</span><span class="o">++</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">if</span> <span class="p">(</span><span class="nx">targets</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">id</span> <span class="o">==</span> <span class="nx">oTargetDD</span><span class="p">.</span><span class="nx">id</span><span class="p">)</span> <span class="p">{</span>
                    <span class="k">return</span> <span class="kc">true</span><span class="p">;</span>
                <span class="p">}</span>
            <span class="p">}</span>

            <span class="k">return</span> <span class="kc">false</span><span class="p">;</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * My goal is to be able to transparently determine if an object is</span>
<span class="cm">         * typeof DragDrop, and the exact subclass of DragDrop.  typeof </span>
<span class="cm">         * returns &quot;object&quot;, oDD.constructor.toString() always returns</span>
<span class="cm">         * &quot;DragDrop&quot; and not the name of the subclass.  So for now it just</span>
<span class="cm">         * evaluates a well-known variable in DragDrop.</span>
<span class="cm">         * @method isTypeOfDD</span>
<span class="cm">         * @param {Object} the object to evaluate</span>
<span class="cm">         * @return {boolean} true if typeof oDD = DragDrop</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">isTypeOfDD</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">oDD</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">return</span> <span class="p">(</span><span class="nx">oDD</span> <span class="o">&amp;&amp;</span> <span class="nx">oDD</span><span class="p">.</span><span class="nx">__ygDragDrop</span><span class="p">);</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Utility function to determine if a given element has been </span>
<span class="cm">         * registered as a drag drop handle for the given Drag Drop object.</span>
<span class="cm">         * @method isHandle</span>
<span class="cm">         * @param {String} id the element id to check</span>
<span class="cm">         * @return {boolean} true if this element is a DragDrop handle, false </span>
<span class="cm">         * otherwise</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">isHandle</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">sDDId</span><span class="p">,</span> <span class="nx">sHandleId</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">return</span> <span class="p">(</span> <span class="k">this</span><span class="p">.</span><span class="nx">handleIds</span><span class="p">[</span><span class="nx">sDDId</span><span class="p">]</span> <span class="o">&amp;&amp;</span> 
                            <span class="k">this</span><span class="p">.</span><span class="nx">handleIds</span><span class="p">[</span><span class="nx">sDDId</span><span class="p">][</span><span class="nx">sHandleId</span><span class="p">]</span> <span class="p">);</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Returns the DragDrop instance for a given id</span>
<span class="cm">         * @method getDDById</span>
<span class="cm">         * @param {String} id the id of the DragDrop object</span>
<span class="cm">         * @return {DragDrop} the drag drop object, null if it is not found</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">getDDById</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">id</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="k">in</span> <span class="k">this</span><span class="p">.</span><span class="nx">ids</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">ids</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="nx">id</span><span class="p">])</span> <span class="p">{</span>
                    <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">ids</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="nx">id</span><span class="p">];</span>
                <span class="p">}</span>
            <span class="p">}</span>
            <span class="k">return</span> <span class="kc">null</span><span class="p">;</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Fired after a registered DragDrop object gets the mousedown event.</span>
<span class="cm">         * Sets up the events required to track the object being dragged</span>
<span class="cm">         * @method handleMouseDown</span>
<span class="cm">         * @param {Event} e the event</span>
<span class="cm">         * @param oDD the DragDrop object being dragged</span>
<span class="cm">         * @private</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">handleMouseDown</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">,</span> <span class="nx">oDD</span><span class="p">)</span> <span class="p">{</span>
            <span class="c1">//this._activateShim();</span>

            <span class="k">this</span><span class="p">.</span><span class="nx">currentTarget</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Event</span><span class="p">.</span><span class="nx">getTarget</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>

            <span class="k">this</span><span class="p">.</span><span class="nx">dragCurrent</span> <span class="o">=</span> <span class="nx">oDD</span><span class="p">;</span>

            <span class="kd">var</span> <span class="nx">el</span> <span class="o">=</span> <span class="nx">oDD</span><span class="p">.</span><span class="nx">getEl</span><span class="p">();</span>

            <span class="c1">// track start position</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">startX</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Event</span><span class="p">.</span><span class="nx">getPageX</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">startY</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Event</span><span class="p">.</span><span class="nx">getPageY</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>

            <span class="k">this</span><span class="p">.</span><span class="nx">deltaX</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">startX</span> <span class="o">-</span> <span class="nx">el</span><span class="p">.</span><span class="nx">offsetLeft</span><span class="p">;</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">deltaY</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">startY</span> <span class="o">-</span> <span class="nx">el</span><span class="p">.</span><span class="nx">offsetTop</span><span class="p">;</span>

            <span class="k">this</span><span class="p">.</span><span class="nx">dragThreshMet</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span>

            <span class="k">this</span><span class="p">.</span><span class="nx">clickTimeout</span> <span class="o">=</span> <span class="nx">setTimeout</span><span class="p">(</span> 
                    <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> 
                        <span class="kd">var</span> <span class="nx">DDM</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">DDM</span><span class="p">;</span>
                        <span class="nx">DDM</span><span class="p">.</span><span class="nx">startDrag</span><span class="p">(</span><span class="nx">DDM</span><span class="p">.</span><span class="nx">startX</span><span class="p">,</span> <span class="nx">DDM</span><span class="p">.</span><span class="nx">startY</span><span class="p">);</span>
                        <span class="nx">DDM</span><span class="p">.</span><span class="nx">fromTimeout</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
                    <span class="p">},</span> 
                    <span class="k">this</span><span class="p">.</span><span class="nx">clickTimeThresh</span> <span class="p">);</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Fired when either the drag pixel threshold or the mousedown hold </span>
<span class="cm">         * time threshold has been met.</span>
<span class="cm">         * @method startDrag</span>
<span class="cm">         * @param x {int} the X position of the original mousedown</span>
<span class="cm">         * @param y {int} the Y position of the original mousedown</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">startDrag</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">dragCurrent</span> <span class="o">&amp;&amp;</span> <span class="k">this</span><span class="p">.</span><span class="nx">dragCurrent</span><span class="p">.</span><span class="nx">useShim</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">_shimState</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">useShim</span><span class="p">;</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">useShim</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
            <span class="p">}</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">_activateShim</span><span class="p">();</span>
            <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;firing drag start events&quot;</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">,</span> <span class="s2">&quot;DragDropMgr&quot;</span><span class="p">);</span>
            <span class="nx">clearTimeout</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">clickTimeout</span><span class="p">);</span>
            <span class="kd">var</span> <span class="nx">dc</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">dragCurrent</span><span class="p">;</span>
            <span class="k">if</span> <span class="p">(</span><span class="nx">dc</span> <span class="o">&amp;&amp;</span> <span class="nx">dc</span><span class="p">.</span><span class="nx">events</span><span class="p">.</span><span class="nx">b4StartDrag</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">dc</span><span class="p">.</span><span class="nx">b4StartDrag</span><span class="p">(</span><span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="p">);</span>
                <span class="nx">dc</span><span class="p">.</span><span class="nx">fireEvent</span><span class="p">(</span><span class="s1">&#39;b4StartDragEvent&#39;</span><span class="p">,</span> <span class="p">{</span> <span class="nx">x</span><span class="o">:</span> <span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="o">:</span> <span class="nx">y</span> <span class="p">});</span>
            <span class="p">}</span>
            <span class="k">if</span> <span class="p">(</span><span class="nx">dc</span> <span class="o">&amp;&amp;</span> <span class="nx">dc</span><span class="p">.</span><span class="nx">events</span><span class="p">.</span><span class="nx">startDrag</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">dc</span><span class="p">.</span><span class="nx">startDrag</span><span class="p">(</span><span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="p">);</span>
                <span class="nx">dc</span><span class="p">.</span><span class="nx">fireEvent</span><span class="p">(</span><span class="s1">&#39;startDragEvent&#39;</span><span class="p">,</span> <span class="p">{</span> <span class="nx">x</span><span class="o">:</span> <span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="o">:</span> <span class="nx">y</span> <span class="p">});</span>
            <span class="p">}</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">dragThreshMet</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Internal function to handle the mouseup event.  Will be invoked </span>
<span class="cm">         * from the context of the document.</span>
<span class="cm">         * @method handleMouseUp</span>
<span class="cm">         * @param {Event} e the event</span>
<span class="cm">         * @private</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">handleMouseUp</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">dragCurrent</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">clearTimeout</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">clickTimeout</span><span class="p">);</span>

                <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">dragThreshMet</span><span class="p">)</span> <span class="p">{</span>
                    <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;mouseup detected - completing drag&quot;</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">,</span> <span class="s2">&quot;DragDropMgr&quot;</span><span class="p">);</span>
                    <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">fromTimeout</span><span class="p">)</span> <span class="p">{</span>
                        <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">&#39;fromTimeout is true (mouse didn\&#39;t move), call handleMouseMove so we can get the dragOver event&#39;</span><span class="p">,</span> <span class="s1">&#39;info&#39;</span><span class="p">,</span> <span class="s1">&#39;DragDropMgr&#39;</span><span class="p">);</span>
                        <span class="k">this</span><span class="p">.</span><span class="nx">fromTimeout</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span>
                        <span class="k">this</span><span class="p">.</span><span class="nx">handleMouseMove</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>
                    <span class="p">}</span>
                    <span class="k">this</span><span class="p">.</span><span class="nx">fromTimeout</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span>
                    <span class="k">this</span><span class="p">.</span><span class="nx">fireEvents</span><span class="p">(</span><span class="nx">e</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
                <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                    <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;drag threshold not met&quot;</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">,</span> <span class="s2">&quot;DragDropMgr&quot;</span><span class="p">);</span>
                <span class="p">}</span>

                <span class="k">this</span><span class="p">.</span><span class="nx">stopDrag</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>

                <span class="k">this</span><span class="p">.</span><span class="nx">stopEvent</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>
            <span class="p">}</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Utility to stop event propagation and event default, if these </span>
<span class="cm">         * features are turned on.</span>
<span class="cm">         * @method stopEvent</span>
<span class="cm">         * @param {Event} e the event as returned by this.getEvent()</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">stopEvent</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">stopPropagation</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Event</span><span class="p">.</span><span class="nx">stopPropagation</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>
            <span class="p">}</span>

            <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>
            <span class="p">}</span>
        <span class="p">},</span>

        <span class="cm">/** </span>
<span class="cm">         * Ends the current drag, cleans up the state, and fires the endDrag</span>
<span class="cm">         * and mouseUp events.  Called internally when a mouseup is detected</span>
<span class="cm">         * during the drag.  Can be fired manually during the drag by passing</span>
<span class="cm">         * either another event (such as the mousemove event received in onDrag)</span>
<span class="cm">         * or a fake event with pageX and pageY defined (so that endDrag and</span>
<span class="cm">         * onMouseUp have usable position data.).  Alternatively, pass true</span>
<span class="cm">         * for the silent parameter so that the endDrag and onMouseUp events</span>
<span class="cm">         * are skipped (so no event data is needed.)</span>
<span class="cm">         *</span>
<span class="cm">         * @method stopDrag</span>
<span class="cm">         * @param {Event} e the mouseup event, another event (or a fake event) </span>
<span class="cm">         *                  with pageX and pageY defined, or nothing if the </span>
<span class="cm">         *                  silent parameter is true</span>
<span class="cm">         * @param {boolean} silent skips the enddrag and mouseup events if true</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">stopDrag</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">,</span> <span class="nx">silent</span><span class="p">)</span> <span class="p">{</span>
            <span class="c1">// YAHOO.log(&quot;mouseup - removing event handlers&quot;);</span>
            <span class="kd">var</span> <span class="nx">dc</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">dragCurrent</span><span class="p">;</span>
            <span class="c1">// Fire the drag end event for the item that was dragged</span>
            <span class="k">if</span> <span class="p">(</span><span class="nx">dc</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="nx">silent</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">dragThreshMet</span><span class="p">)</span> <span class="p">{</span>
                    <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;firing endDrag events&quot;</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">,</span> <span class="s2">&quot;DragDropMgr&quot;</span><span class="p">);</span>
                    <span class="k">if</span> <span class="p">(</span><span class="nx">dc</span><span class="p">.</span><span class="nx">events</span><span class="p">.</span><span class="nx">b4EndDrag</span><span class="p">)</span> <span class="p">{</span>
                        <span class="nx">dc</span><span class="p">.</span><span class="nx">b4EndDrag</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>
                        <span class="nx">dc</span><span class="p">.</span><span class="nx">fireEvent</span><span class="p">(</span><span class="s1">&#39;b4EndDragEvent&#39;</span><span class="p">,</span> <span class="p">{</span> <span class="nx">e</span><span class="o">:</span> <span class="nx">e</span> <span class="p">});</span>
                    <span class="p">}</span>
                    <span class="k">if</span> <span class="p">(</span><span class="nx">dc</span><span class="p">.</span><span class="nx">events</span><span class="p">.</span><span class="nx">endDrag</span><span class="p">)</span> <span class="p">{</span>
                        <span class="nx">dc</span><span class="p">.</span><span class="nx">endDrag</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>
                        <span class="nx">dc</span><span class="p">.</span><span class="nx">fireEvent</span><span class="p">(</span><span class="s1">&#39;endDragEvent&#39;</span><span class="p">,</span> <span class="p">{</span> <span class="nx">e</span><span class="o">:</span> <span class="nx">e</span> <span class="p">});</span>
                    <span class="p">}</span>
                <span class="p">}</span>
                <span class="k">if</span> <span class="p">(</span><span class="nx">dc</span><span class="p">.</span><span class="nx">events</span><span class="p">.</span><span class="nx">mouseUp</span><span class="p">)</span> <span class="p">{</span>
                    <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;firing dragdrop onMouseUp event&quot;</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">,</span> <span class="s2">&quot;DragDropMgr&quot;</span><span class="p">);</span>
                    <span class="nx">dc</span><span class="p">.</span><span class="nx">onMouseUp</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>
                    <span class="nx">dc</span><span class="p">.</span><span class="nx">fireEvent</span><span class="p">(</span><span class="s1">&#39;mouseUpEvent&#39;</span><span class="p">,</span> <span class="p">{</span> <span class="nx">e</span><span class="o">:</span> <span class="nx">e</span> <span class="p">});</span>
                <span class="p">}</span>
            <span class="p">}</span>

            <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_shimActive</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">_deactivateShim</span><span class="p">();</span>
                <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">dragCurrent</span> <span class="o">&amp;&amp;</span> <span class="k">this</span><span class="p">.</span><span class="nx">dragCurrent</span><span class="p">.</span><span class="nx">useShim</span><span class="p">)</span> <span class="p">{</span>
                    <span class="k">this</span><span class="p">.</span><span class="nx">useShim</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_shimState</span><span class="p">;</span>
                    <span class="k">this</span><span class="p">.</span><span class="nx">_shimState</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span>
                <span class="p">}</span>
            <span class="p">}</span>

            <span class="k">this</span><span class="p">.</span><span class="nx">dragCurrent</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">dragOvers</span> <span class="o">=</span> <span class="p">{};</span>
        <span class="p">},</span>

        <span class="cm">/** </span>
<span class="cm">         * Internal function to handle the mousemove event.  Will be invoked </span>
<span class="cm">         * from the context of the html element.</span>
<span class="cm">         *</span>
<span class="cm">         * @TODO figure out what we can do about mouse events lost when the </span>
<span class="cm">         * user drags objects beyond the window boundary.  Currently we can </span>
<span class="cm">         * detect this in internet explorer by verifying that the mouse is </span>
<span class="cm">         * down during the mousemove event.  Firefox doesn&#39;t give us the </span>
<span class="cm">         * button state on the mousemove event.</span>
<span class="cm">         * @method handleMouseMove</span>
<span class="cm">         * @param {Event} e the event</span>
<span class="cm">         * @private</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">handleMouseMove</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span>
            <span class="c1">//YAHOO.log(&quot;handlemousemove&quot;);</span>

            <span class="kd">var</span> <span class="nx">dc</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">dragCurrent</span><span class="p">;</span>
            <span class="k">if</span> <span class="p">(</span><span class="nx">dc</span><span class="p">)</span> <span class="p">{</span>
                <span class="c1">// YAHOO.log(&quot;no current drag obj&quot;);</span>

                <span class="c1">// var button = e.which || e.button;</span>
                <span class="c1">// YAHOO.log(&quot;which: &quot; + e.which + &quot;, button: &quot;+ e.button);</span>

                <span class="c1">// check for IE &lt; 9 mouseup outside of page boundary</span>
                <span class="k">if</span> <span class="p">(</span><span class="nx">YAHOO</span><span class="p">.</span><span class="nx">env</span><span class="p">.</span><span class="nx">ua</span><span class="p">.</span><span class="nx">ie</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="nx">YAHOO</span><span class="p">.</span><span class="nx">env</span><span class="p">.</span><span class="nx">ua</span><span class="p">.</span><span class="nx">ie</span> <span class="o">&lt;</span> <span class="mi">9</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="nx">e</span><span class="p">.</span><span class="nx">button</span><span class="p">)</span> <span class="p">{</span>
                    <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;button failure&quot;</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">,</span> <span class="s2">&quot;DragDropMgr&quot;</span><span class="p">);</span>
                    <span class="k">this</span><span class="p">.</span><span class="nx">stopEvent</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>
                    <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">handleMouseUp</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>
                <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                    <span class="k">if</span> <span class="p">(</span><span class="nx">e</span><span class="p">.</span><span class="nx">clientX</span> <span class="o">&lt;</span> <span class="mi">0</span> <span class="o">||</span> <span class="nx">e</span><span class="p">.</span><span class="nx">clientY</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
                        <span class="c1">//This will stop the element from leaving the viewport in FF, Opera &amp; Safari</span>
                        <span class="c1">//Not turned on yet</span>
                        <span class="c1">//YAHOO.log(&quot;Either clientX or clientY is negative, stop the event.&quot;, &quot;info&quot;, &quot;DragDropMgr&quot;);</span>
                        <span class="c1">//this.stopEvent(e);</span>
                        <span class="c1">//return false;</span>
                    <span class="p">}</span>
                <span class="p">}</span>

                <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">dragThreshMet</span><span class="p">)</span> <span class="p">{</span>
                    <span class="kd">var</span> <span class="nx">diffX</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">abs</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">startX</span> <span class="o">-</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Event</span><span class="p">.</span><span class="nx">getPageX</span><span class="p">(</span><span class="nx">e</span><span class="p">));</span>
                    <span class="kd">var</span> <span class="nx">diffY</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">abs</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">startY</span> <span class="o">-</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Event</span><span class="p">.</span><span class="nx">getPageY</span><span class="p">(</span><span class="nx">e</span><span class="p">));</span>
                    <span class="c1">// YAHOO.log(&quot;diffX: &quot; + diffX + &quot;diffY: &quot; + diffY);</span>
                    <span class="k">if</span> <span class="p">(</span><span class="nx">diffX</span> <span class="o">&gt;</span> <span class="k">this</span><span class="p">.</span><span class="nx">clickPixelThresh</span> <span class="o">||</span> 
                                <span class="nx">diffY</span> <span class="o">&gt;</span> <span class="k">this</span><span class="p">.</span><span class="nx">clickPixelThresh</span><span class="p">)</span> <span class="p">{</span>
                        <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;pixel threshold met&quot;</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">,</span> <span class="s2">&quot;DragDropMgr&quot;</span><span class="p">);</span>
                        <span class="k">this</span><span class="p">.</span><span class="nx">startDrag</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">startX</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">startY</span><span class="p">);</span>
                    <span class="p">}</span>
                <span class="p">}</span>

                <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">dragThreshMet</span><span class="p">)</span> <span class="p">{</span>
                    <span class="k">if</span> <span class="p">(</span><span class="nx">dc</span> <span class="o">&amp;&amp;</span> <span class="nx">dc</span><span class="p">.</span><span class="nx">events</span><span class="p">.</span><span class="nx">b4Drag</span><span class="p">)</span> <span class="p">{</span>
                        <span class="nx">dc</span><span class="p">.</span><span class="nx">b4Drag</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>
                        <span class="nx">dc</span><span class="p">.</span><span class="nx">fireEvent</span><span class="p">(</span><span class="s1">&#39;b4DragEvent&#39;</span><span class="p">,</span> <span class="p">{</span> <span class="nx">e</span><span class="o">:</span> <span class="nx">e</span><span class="p">});</span>
                    <span class="p">}</span>
                    <span class="k">if</span> <span class="p">(</span><span class="nx">dc</span> <span class="o">&amp;&amp;</span> <span class="nx">dc</span><span class="p">.</span><span class="nx">events</span><span class="p">.</span><span class="nx">drag</span><span class="p">)</span> <span class="p">{</span>
                        <span class="nx">dc</span><span class="p">.</span><span class="nx">onDrag</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>
                        <span class="nx">dc</span><span class="p">.</span><span class="nx">fireEvent</span><span class="p">(</span><span class="s1">&#39;dragEvent&#39;</span><span class="p">,</span> <span class="p">{</span> <span class="nx">e</span><span class="o">:</span> <span class="nx">e</span><span class="p">});</span>
                    <span class="p">}</span>
                    <span class="k">if</span> <span class="p">(</span><span class="nx">dc</span><span class="p">)</span> <span class="p">{</span>
                        <span class="k">this</span><span class="p">.</span><span class="nx">fireEvents</span><span class="p">(</span><span class="nx">e</span><span class="p">,</span> <span class="kc">false</span><span class="p">);</span>
                    <span class="p">}</span>
                <span class="p">}</span>

                <span class="k">this</span><span class="p">.</span><span class="nx">stopEvent</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>
            <span class="p">}</span>
        <span class="p">},</span>
        
        <span class="cm">/**</span>
<span class="cm">         * Iterates over all of the DragDrop elements to find ones we are </span>
<span class="cm">         * hovering over or dropping on</span>
<span class="cm">         * @method fireEvents</span>
<span class="cm">         * @param {Event} e the event</span>
<span class="cm">         * @param {boolean} isDrop is this a drop op or a mouseover op?</span>
<span class="cm">         * @private</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">fireEvents</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">,</span> <span class="nx">isDrop</span><span class="p">)</span> <span class="p">{</span>
            <span class="kd">var</span> <span class="nx">dc</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">dragCurrent</span><span class="p">;</span>

            <span class="c1">// If the user did the mouse up outside of the window, we could </span>
            <span class="c1">// get here even though we have ended the drag.</span>
            <span class="c1">// If the config option dragOnly is true, bail out and don&#39;t fire the events</span>
            <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">dc</span> <span class="o">||</span> <span class="nx">dc</span><span class="p">.</span><span class="nx">isLocked</span><span class="p">()</span> <span class="o">||</span> <span class="nx">dc</span><span class="p">.</span><span class="nx">dragOnly</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">return</span><span class="p">;</span>
            <span class="p">}</span>

            <span class="kd">var</span> <span class="nx">x</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Event</span><span class="p">.</span><span class="nx">getPageX</span><span class="p">(</span><span class="nx">e</span><span class="p">),</span>
                <span class="nx">y</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Event</span><span class="p">.</span><span class="nx">getPageY</span><span class="p">(</span><span class="nx">e</span><span class="p">),</span>
                <span class="nx">pt</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Point</span><span class="p">(</span><span class="nx">x</span><span class="p">,</span><span class="nx">y</span><span class="p">),</span>
                <span class="nx">pos</span> <span class="o">=</span> <span class="nx">dc</span><span class="p">.</span><span class="nx">getTargetCoord</span><span class="p">(</span><span class="nx">pt</span><span class="p">.</span><span class="nx">x</span><span class="p">,</span> <span class="nx">pt</span><span class="p">.</span><span class="nx">y</span><span class="p">),</span>
                <span class="nx">el</span> <span class="o">=</span> <span class="nx">dc</span><span class="p">.</span><span class="nx">getDragEl</span><span class="p">(),</span>
                <span class="nx">events</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;out&#39;</span><span class="p">,</span> <span class="s1">&#39;over&#39;</span><span class="p">,</span> <span class="s1">&#39;drop&#39;</span><span class="p">,</span> <span class="s1">&#39;enter&#39;</span><span class="p">],</span>
                <span class="nx">curRegion</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Region</span><span class="p">(</span> <span class="nx">pos</span><span class="p">.</span><span class="nx">y</span><span class="p">,</span> 
                                               <span class="nx">pos</span><span class="p">.</span><span class="nx">x</span> <span class="o">+</span> <span class="nx">el</span><span class="p">.</span><span class="nx">offsetWidth</span><span class="p">,</span>
                                               <span class="nx">pos</span><span class="p">.</span><span class="nx">y</span> <span class="o">+</span> <span class="nx">el</span><span class="p">.</span><span class="nx">offsetHeight</span><span class="p">,</span> 
                                               <span class="nx">pos</span><span class="p">.</span><span class="nx">x</span> <span class="p">),</span>
            
                <span class="nx">oldOvers</span> <span class="o">=</span> <span class="p">[],</span> <span class="c1">// cache the previous dragOver array</span>
                <span class="nx">inGroupsObj</span>  <span class="o">=</span> <span class="p">{},</span>
                <span class="nx">b4Results</span> <span class="o">=</span> <span class="p">{},</span>
                <span class="nx">inGroups</span>  <span class="o">=</span> <span class="p">[],</span>
                <span class="nx">data</span> <span class="o">=</span> <span class="p">{</span>
                    <span class="nx">outEvts</span><span class="o">:</span> <span class="p">[],</span>
                    <span class="nx">overEvts</span><span class="o">:</span> <span class="p">[],</span>
                    <span class="nx">dropEvts</span><span class="o">:</span> <span class="p">[],</span>
                    <span class="nx">enterEvts</span><span class="o">:</span> <span class="p">[]</span>
                <span class="p">};</span>


            <span class="c1">// Check to see if the object(s) we were hovering over is no longer </span>
            <span class="c1">// being hovered over so we can fire the onDragOut event</span>
            <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="k">in</span> <span class="k">this</span><span class="p">.</span><span class="nx">dragOvers</span><span class="p">)</span> <span class="p">{</span>

                <span class="kd">var</span> <span class="nx">ddo</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">dragOvers</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span>

                <span class="k">if</span> <span class="p">(</span><span class="o">!</span> <span class="k">this</span><span class="p">.</span><span class="nx">isTypeOfDD</span><span class="p">(</span><span class="nx">ddo</span><span class="p">))</span> <span class="p">{</span>
                    <span class="k">continue</span><span class="p">;</span>
                <span class="p">}</span>
                <span class="k">if</span> <span class="p">(</span><span class="o">!</span> <span class="k">this</span><span class="p">.</span><span class="nx">isOverTarget</span><span class="p">(</span><span class="nx">pt</span><span class="p">,</span> <span class="nx">ddo</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">mode</span><span class="p">,</span> <span class="nx">curRegion</span><span class="p">))</span> <span class="p">{</span>
                    <span class="nx">data</span><span class="p">.</span><span class="nx">outEvts</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span> <span class="nx">ddo</span> <span class="p">);</span>
                <span class="p">}</span>

                <span class="nx">oldOvers</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
                <span class="k">delete</span> <span class="k">this</span><span class="p">.</span><span class="nx">dragOvers</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span>
            <span class="p">}</span>

            <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">sGroup</span> <span class="k">in</span> <span class="nx">dc</span><span class="p">.</span><span class="nx">groups</span><span class="p">)</span> <span class="p">{</span>
                <span class="c1">// YAHOO.log(&quot;Processing group &quot; + sGroup);</span>
                
                <span class="k">if</span> <span class="p">(</span><span class="s2">&quot;string&quot;</span> <span class="o">!=</span> <span class="k">typeof</span> <span class="nx">sGroup</span><span class="p">)</span> <span class="p">{</span>
                    <span class="k">continue</span><span class="p">;</span>
                <span class="p">}</span>

                <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="k">in</span> <span class="k">this</span><span class="p">.</span><span class="nx">ids</span><span class="p">[</span><span class="nx">sGroup</span><span class="p">])</span> <span class="p">{</span>
                    <span class="kd">var</span> <span class="nx">oDD</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">ids</span><span class="p">[</span><span class="nx">sGroup</span><span class="p">][</span><span class="nx">i</span><span class="p">];</span>
                    <span class="k">if</span> <span class="p">(</span><span class="o">!</span> <span class="k">this</span><span class="p">.</span><span class="nx">isTypeOfDD</span><span class="p">(</span><span class="nx">oDD</span><span class="p">))</span> <span class="p">{</span>
                        <span class="k">continue</span><span class="p">;</span>
                    <span class="p">}</span>

                    <span class="k">if</span> <span class="p">(</span><span class="nx">oDD</span><span class="p">.</span><span class="nx">isTarget</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="nx">oDD</span><span class="p">.</span><span class="nx">isLocked</span><span class="p">()</span> <span class="o">&amp;&amp;</span> <span class="nx">oDD</span> <span class="o">!=</span> <span class="nx">dc</span><span class="p">)</span> <span class="p">{</span>
                        <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">isOverTarget</span><span class="p">(</span><span class="nx">pt</span><span class="p">,</span> <span class="nx">oDD</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">mode</span><span class="p">,</span> <span class="nx">curRegion</span><span class="p">))</span> <span class="p">{</span>
                            <span class="nx">inGroupsObj</span><span class="p">[</span><span class="nx">sGroup</span><span class="p">]</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
                            <span class="c1">// look for drop interactions</span>
                            <span class="k">if</span> <span class="p">(</span><span class="nx">isDrop</span><span class="p">)</span> <span class="p">{</span>
                                <span class="nx">data</span><span class="p">.</span><span class="nx">dropEvts</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span> <span class="nx">oDD</span> <span class="p">);</span>
                            <span class="c1">// look for drag enter and drag over interactions</span>
                            <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>

                                <span class="c1">// initial drag over: dragEnter fires</span>
                                <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">oldOvers</span><span class="p">[</span><span class="nx">oDD</span><span class="p">.</span><span class="nx">id</span><span class="p">])</span> <span class="p">{</span>
                                    <span class="nx">data</span><span class="p">.</span><span class="nx">enterEvts</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span> <span class="nx">oDD</span> <span class="p">);</span>
                                <span class="c1">// subsequent drag overs: dragOver fires</span>
                                <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                                    <span class="nx">data</span><span class="p">.</span><span class="nx">overEvts</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span> <span class="nx">oDD</span> <span class="p">);</span>
                                <span class="p">}</span>

                                <span class="k">this</span><span class="p">.</span><span class="nx">dragOvers</span><span class="p">[</span><span class="nx">oDD</span><span class="p">.</span><span class="nx">id</span><span class="p">]</span> <span class="o">=</span> <span class="nx">oDD</span><span class="p">;</span>
                            <span class="p">}</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">}</span>
            <span class="p">}</span>

            <span class="k">this</span><span class="p">.</span><span class="nx">interactionInfo</span> <span class="o">=</span> <span class="p">{</span>
                <span class="nx">out</span><span class="o">:</span>       <span class="nx">data</span><span class="p">.</span><span class="nx">outEvts</span><span class="p">,</span>
                <span class="nx">enter</span><span class="o">:</span>     <span class="nx">data</span><span class="p">.</span><span class="nx">enterEvts</span><span class="p">,</span>
                <span class="nx">over</span><span class="o">:</span>      <span class="nx">data</span><span class="p">.</span><span class="nx">overEvts</span><span class="p">,</span>
                <span class="nx">drop</span><span class="o">:</span>      <span class="nx">data</span><span class="p">.</span><span class="nx">dropEvts</span><span class="p">,</span>
                <span class="nx">point</span><span class="o">:</span>     <span class="nx">pt</span><span class="p">,</span>
                <span class="nx">draggedRegion</span><span class="o">:</span>    <span class="nx">curRegion</span><span class="p">,</span>
                <span class="nx">sourceRegion</span><span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">locationCache</span><span class="p">[</span><span class="nx">dc</span><span class="p">.</span><span class="nx">id</span><span class="p">],</span>
                <span class="nx">validDrop</span><span class="o">:</span> <span class="nx">isDrop</span>
            <span class="p">};</span>

            
            <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">inG</span> <span class="k">in</span> <span class="nx">inGroupsObj</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">inGroups</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">inG</span><span class="p">);</span>
            <span class="p">}</span>

            <span class="c1">// notify about a drop that did not find a target</span>
            <span class="k">if</span> <span class="p">(</span><span class="nx">isDrop</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="nx">data</span><span class="p">.</span><span class="nx">dropEvts</span><span class="p">.</span><span class="nx">length</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">dc</span><span class="p">.</span><span class="nx">id</span> <span class="o">+</span> <span class="s2">&quot; dropped, but not on a target&quot;</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">,</span> <span class="s2">&quot;DragDropMgr&quot;</span><span class="p">);</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">interactionInfo</span><span class="p">.</span><span class="nx">validDrop</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span>
                <span class="k">if</span> <span class="p">(</span><span class="nx">dc</span><span class="p">.</span><span class="nx">events</span><span class="p">.</span><span class="nx">invalidDrop</span><span class="p">)</span> <span class="p">{</span>
                    <span class="nx">dc</span><span class="p">.</span><span class="nx">onInvalidDrop</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>
                    <span class="nx">dc</span><span class="p">.</span><span class="nx">fireEvent</span><span class="p">(</span><span class="s1">&#39;invalidDropEvent&#39;</span><span class="p">,</span> <span class="p">{</span> <span class="nx">e</span><span class="o">:</span> <span class="nx">e</span> <span class="p">});</span>
                <span class="p">}</span>
            <span class="p">}</span>
            <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">events</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
                <span class="kd">var</span> <span class="nx">tmp</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
                <span class="k">if</span> <span class="p">(</span><span class="nx">data</span><span class="p">[</span><span class="nx">events</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">+</span> <span class="s1">&#39;Evts&#39;</span><span class="p">])</span> <span class="p">{</span>
                    <span class="nx">tmp</span> <span class="o">=</span> <span class="nx">data</span><span class="p">[</span><span class="nx">events</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">+</span> <span class="s1">&#39;Evts&#39;</span><span class="p">];</span>
                <span class="p">}</span>
                <span class="k">if</span> <span class="p">(</span><span class="nx">tmp</span> <span class="o">&amp;&amp;</span> <span class="nx">tmp</span><span class="p">.</span><span class="nx">length</span><span class="p">)</span> <span class="p">{</span>
                    <span class="kd">var</span> <span class="nx">type</span> <span class="o">=</span> <span class="nx">events</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">charAt</span><span class="p">(</span><span class="mi">0</span><span class="p">).</span><span class="nx">toUpperCase</span><span class="p">()</span> <span class="o">+</span> <span class="nx">events</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">substr</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span>
                        <span class="nx">ev</span> <span class="o">=</span> <span class="s1">&#39;onDrag&#39;</span> <span class="o">+</span> <span class="nx">type</span><span class="p">,</span>
                        <span class="nx">b4</span> <span class="o">=</span> <span class="s1">&#39;b4Drag&#39;</span> <span class="o">+</span> <span class="nx">type</span><span class="p">,</span>
                        <span class="nx">cev</span> <span class="o">=</span> <span class="s1">&#39;drag&#39;</span> <span class="o">+</span> <span class="nx">type</span> <span class="o">+</span> <span class="s1">&#39;Event&#39;</span><span class="p">,</span>
                        <span class="nx">check</span> <span class="o">=</span> <span class="s1">&#39;drag&#39;</span> <span class="o">+</span> <span class="nx">type</span><span class="p">;</span>
                    <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">mode</span><span class="p">)</span> <span class="p">{</span>
                        <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">dc</span><span class="p">.</span><span class="nx">id</span> <span class="o">+</span> <span class="s1">&#39; &#39;</span> <span class="o">+</span> <span class="nx">ev</span> <span class="o">+</span> <span class="s1">&#39;: &#39;</span> <span class="o">+</span> <span class="nx">tmp</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">,</span> <span class="s2">&quot;DragDropMgr&quot;</span><span class="p">);</span>
                        <span class="k">if</span> <span class="p">(</span><span class="nx">dc</span><span class="p">.</span><span class="nx">events</span><span class="p">[</span><span class="nx">b4</span><span class="p">])</span> <span class="p">{</span>
                            <span class="nx">dc</span><span class="p">[</span><span class="nx">b4</span><span class="p">](</span><span class="nx">e</span><span class="p">,</span> <span class="nx">tmp</span><span class="p">,</span> <span class="nx">inGroups</span><span class="p">);</span>
                            <span class="nx">b4Results</span><span class="p">[</span><span class="nx">ev</span><span class="p">]</span> <span class="o">=</span> <span class="nx">dc</span><span class="p">.</span><span class="nx">fireEvent</span><span class="p">(</span><span class="nx">b4</span> <span class="o">+</span> <span class="s1">&#39;Event&#39;</span><span class="p">,</span> <span class="p">{</span> <span class="nx">event</span><span class="o">:</span> <span class="nx">e</span><span class="p">,</span> <span class="nx">info</span><span class="o">:</span> <span class="nx">tmp</span><span class="p">,</span> <span class="nx">group</span><span class="o">:</span> <span class="nx">inGroups</span> <span class="p">});</span>
                            
                        <span class="p">}</span>
                        <span class="k">if</span> <span class="p">(</span><span class="nx">dc</span><span class="p">.</span><span class="nx">events</span><span class="p">[</span><span class="nx">check</span><span class="p">]</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="nx">b4Results</span><span class="p">[</span><span class="nx">ev</span><span class="p">]</span> <span class="o">!==</span> <span class="kc">false</span><span class="p">))</span> <span class="p">{</span>
                            <span class="nx">dc</span><span class="p">[</span><span class="nx">ev</span><span class="p">](</span><span class="nx">e</span><span class="p">,</span> <span class="nx">tmp</span><span class="p">,</span> <span class="nx">inGroups</span><span class="p">);</span>
                            <span class="nx">dc</span><span class="p">.</span><span class="nx">fireEvent</span><span class="p">(</span><span class="nx">cev</span><span class="p">,</span> <span class="p">{</span> <span class="nx">event</span><span class="o">:</span> <span class="nx">e</span><span class="p">,</span> <span class="nx">info</span><span class="o">:</span> <span class="nx">tmp</span><span class="p">,</span> <span class="nx">group</span><span class="o">:</span> <span class="nx">inGroups</span> <span class="p">});</span>
                        <span class="p">}</span>
                    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                        <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">b</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">len</span> <span class="o">=</span> <span class="nx">tmp</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">b</span> <span class="o">&lt;</span> <span class="nx">len</span><span class="p">;</span> <span class="o">++</span><span class="nx">b</span><span class="p">)</span> <span class="p">{</span>
                            <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">dc</span><span class="p">.</span><span class="nx">id</span> <span class="o">+</span> <span class="s1">&#39; &#39;</span> <span class="o">+</span> <span class="nx">ev</span> <span class="o">+</span> <span class="s1">&#39;: &#39;</span> <span class="o">+</span> <span class="nx">tmp</span><span class="p">[</span><span class="nx">b</span><span class="p">].</span><span class="nx">id</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">,</span> <span class="s2">&quot;DragDropMgr&quot;</span><span class="p">);</span>
                            <span class="k">if</span> <span class="p">(</span><span class="nx">dc</span><span class="p">.</span><span class="nx">events</span><span class="p">[</span><span class="nx">b4</span><span class="p">])</span> <span class="p">{</span>
                                <span class="nx">dc</span><span class="p">[</span><span class="nx">b4</span><span class="p">](</span><span class="nx">e</span><span class="p">,</span> <span class="nx">tmp</span><span class="p">[</span><span class="nx">b</span><span class="p">].</span><span class="nx">id</span><span class="p">,</span> <span class="nx">inGroups</span><span class="p">[</span><span class="mi">0</span><span class="p">]);</span>
                                <span class="nx">b4Results</span><span class="p">[</span><span class="nx">ev</span><span class="p">]</span> <span class="o">=</span> <span class="nx">dc</span><span class="p">.</span><span class="nx">fireEvent</span><span class="p">(</span><span class="nx">b4</span> <span class="o">+</span> <span class="s1">&#39;Event&#39;</span><span class="p">,</span> <span class="p">{</span> <span class="nx">event</span><span class="o">:</span> <span class="nx">e</span><span class="p">,</span> <span class="nx">info</span><span class="o">:</span> <span class="nx">tmp</span><span class="p">[</span><span class="nx">b</span><span class="p">].</span><span class="nx">id</span><span class="p">,</span> <span class="nx">group</span><span class="o">:</span> <span class="nx">inGroups</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="p">});</span>
                            <span class="p">}</span>
                            <span class="k">if</span> <span class="p">(</span><span class="nx">dc</span><span class="p">.</span><span class="nx">events</span><span class="p">[</span><span class="nx">check</span><span class="p">]</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="nx">b4Results</span><span class="p">[</span><span class="nx">ev</span><span class="p">]</span> <span class="o">!==</span> <span class="kc">false</span><span class="p">))</span> <span class="p">{</span>
                                <span class="nx">dc</span><span class="p">[</span><span class="nx">ev</span><span class="p">](</span><span class="nx">e</span><span class="p">,</span> <span class="nx">tmp</span><span class="p">[</span><span class="nx">b</span><span class="p">].</span><span class="nx">id</span><span class="p">,</span> <span class="nx">inGroups</span><span class="p">[</span><span class="mi">0</span><span class="p">]);</span>
                                <span class="nx">dc</span><span class="p">.</span><span class="nx">fireEvent</span><span class="p">(</span><span class="nx">cev</span><span class="p">,</span> <span class="p">{</span> <span class="nx">event</span><span class="o">:</span> <span class="nx">e</span><span class="p">,</span> <span class="nx">info</span><span class="o">:</span> <span class="nx">tmp</span><span class="p">[</span><span class="nx">b</span><span class="p">].</span><span class="nx">id</span><span class="p">,</span> <span class="nx">group</span><span class="o">:</span> <span class="nx">inGroups</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="p">});</span>
                            <span class="p">}</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">}</span>
            <span class="p">}</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Helper function for getting the best match from the list of drag </span>
<span class="cm">         * and drop objects returned by the drag and drop events when we are </span>
<span class="cm">         * in INTERSECT mode.  It returns either the first object that the </span>
<span class="cm">         * cursor is over, or the object that has the greatest overlap with </span>
<span class="cm">         * the dragged element.</span>
<span class="cm">         * @method getBestMatch</span>
<span class="cm">         * @param  {DragDrop[]} dds The array of drag and drop objects </span>
<span class="cm">         * targeted</span>
<span class="cm">         * @return {DragDrop}       The best single match</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">getBestMatch</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">dds</span><span class="p">)</span> <span class="p">{</span>
            <span class="kd">var</span> <span class="nx">winner</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>

            <span class="kd">var</span> <span class="nx">len</span> <span class="o">=</span> <span class="nx">dds</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span>

            <span class="k">if</span> <span class="p">(</span><span class="nx">len</span> <span class="o">==</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">winner</span> <span class="o">=</span> <span class="nx">dds</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
            <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                <span class="c1">// Loop through the targeted items</span>
                <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span> <span class="nx">i</span><span class="o">&lt;</span><span class="nx">len</span><span class="p">;</span> <span class="o">++</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span>
                    <span class="kd">var</span> <span class="nx">dd</span> <span class="o">=</span> <span class="nx">dds</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span>
                    <span class="c1">// If the cursor is over the object, it wins.  If the </span>
                    <span class="c1">// cursor is over multiple matches, the first one we come</span>
                    <span class="c1">// to wins.</span>
                    <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">mode</span> <span class="o">==</span> <span class="k">this</span><span class="p">.</span><span class="nx">INTERSECT</span> <span class="o">&amp;&amp;</span> <span class="nx">dd</span><span class="p">.</span><span class="nx">cursorIsOver</span><span class="p">)</span> <span class="p">{</span>
                        <span class="nx">winner</span> <span class="o">=</span> <span class="nx">dd</span><span class="p">;</span>
                        <span class="k">break</span><span class="p">;</span>
                    <span class="c1">// Otherwise the object with the most overlap wins</span>
                    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                        <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">winner</span> <span class="o">||</span> <span class="o">!</span><span class="nx">winner</span><span class="p">.</span><span class="nx">overlap</span> <span class="o">||</span> <span class="p">(</span><span class="nx">dd</span><span class="p">.</span><span class="nx">overlap</span> <span class="o">&amp;&amp;</span>
                            <span class="nx">winner</span><span class="p">.</span><span class="nx">overlap</span><span class="p">.</span><span class="nx">getArea</span><span class="p">()</span> <span class="o">&lt;</span> <span class="nx">dd</span><span class="p">.</span><span class="nx">overlap</span><span class="p">.</span><span class="nx">getArea</span><span class="p">()))</span> <span class="p">{</span>
                            <span class="nx">winner</span> <span class="o">=</span> <span class="nx">dd</span><span class="p">;</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">}</span>
            <span class="p">}</span>

            <span class="k">return</span> <span class="nx">winner</span><span class="p">;</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Refreshes the cache of the top-left and bottom-right points of the </span>
<span class="cm">         * drag and drop objects in the specified group(s).  This is in the</span>
<span class="cm">         * format that is stored in the drag and drop instance, so typical </span>
<span class="cm">         * usage is:</span>
<span class="cm">         * &lt;code&gt;</span>
<span class="cm">         * YAHOO.util.DragDropMgr.refreshCache(ddinstance.groups);</span>
<span class="cm">         * &lt;/code&gt;</span>
<span class="cm">         * Alternatively:</span>
<span class="cm">         * &lt;code&gt;</span>
<span class="cm">         * YAHOO.util.DragDropMgr.refreshCache({group1:true, group2:true});</span>
<span class="cm">         * &lt;/code&gt;</span>
<span class="cm">         * @TODO this really should be an indexed array.  Alternatively this</span>
<span class="cm">         * method could accept both.</span>
<span class="cm">         * @method refreshCache</span>
<span class="cm">         * @param {Object} groups an associative array of groups to refresh</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">refreshCache</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">groups</span><span class="p">)</span> <span class="p">{</span>
            <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;refreshing element location cache&quot;</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">,</span> <span class="s2">&quot;DragDropMgr&quot;</span><span class="p">);</span>

            <span class="c1">// refresh everything if group array is not provided</span>
            <span class="kd">var</span> <span class="nx">g</span> <span class="o">=</span> <span class="nx">groups</span> <span class="o">||</span> <span class="k">this</span><span class="p">.</span><span class="nx">ids</span><span class="p">;</span>

            <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">sGroup</span> <span class="k">in</span> <span class="nx">g</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">if</span> <span class="p">(</span><span class="s2">&quot;string&quot;</span> <span class="o">!=</span> <span class="k">typeof</span> <span class="nx">sGroup</span><span class="p">)</span> <span class="p">{</span>
                    <span class="k">continue</span><span class="p">;</span>
                <span class="p">}</span>
                <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="k">in</span> <span class="k">this</span><span class="p">.</span><span class="nx">ids</span><span class="p">[</span><span class="nx">sGroup</span><span class="p">])</span> <span class="p">{</span>
                    <span class="kd">var</span> <span class="nx">oDD</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">ids</span><span class="p">[</span><span class="nx">sGroup</span><span class="p">][</span><span class="nx">i</span><span class="p">];</span>

                    <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">isTypeOfDD</span><span class="p">(</span><span class="nx">oDD</span><span class="p">))</span> <span class="p">{</span>
                        <span class="kd">var</span> <span class="nx">loc</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getLocation</span><span class="p">(</span><span class="nx">oDD</span><span class="p">);</span>
                        <span class="k">if</span> <span class="p">(</span><span class="nx">loc</span><span class="p">)</span> <span class="p">{</span>
                            <span class="k">this</span><span class="p">.</span><span class="nx">locationCache</span><span class="p">[</span><span class="nx">oDD</span><span class="p">.</span><span class="nx">id</span><span class="p">]</span> <span class="o">=</span> <span class="nx">loc</span><span class="p">;</span>
                        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                            <span class="k">delete</span> <span class="k">this</span><span class="p">.</span><span class="nx">locationCache</span><span class="p">[</span><span class="nx">oDD</span><span class="p">.</span><span class="nx">id</span><span class="p">];</span>
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;Could not get the loc for &quot;</span> <span class="o">+</span> <span class="nx">oDD</span><span class="p">.</span><span class="nx">id</span><span class="p">,</span> <span class="s2">&quot;warn&quot;</span><span class="p">,</span> <span class="s2">&quot;DragDropMgr&quot;</span><span class="p">);</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">}</span>
            <span class="p">}</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * This checks to make sure an element exists and is in the DOM.  The</span>
<span class="cm">         * main purpose is to handle cases where innerHTML is used to remove</span>
<span class="cm">         * drag and drop objects from the DOM.  IE provides an &#39;unspecified</span>
<span class="cm">         * error&#39; when trying to access the offsetParent of such an element</span>
<span class="cm">         * @method verifyEl</span>
<span class="cm">         * @param {HTMLElement} el the element to check</span>
<span class="cm">         * @return {boolean} true if the element looks usable</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">verifyEl</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">try</span> <span class="p">{</span>
                <span class="k">if</span> <span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span>
                    <span class="kd">var</span> <span class="nx">parent</span> <span class="o">=</span> <span class="nx">el</span><span class="p">.</span><span class="nx">offsetParent</span><span class="p">;</span>
                    <span class="k">if</span> <span class="p">(</span><span class="nx">parent</span><span class="p">)</span> <span class="p">{</span>
                        <span class="k">return</span> <span class="kc">true</span><span class="p">;</span>
                    <span class="p">}</span>
                <span class="p">}</span>
            <span class="p">}</span> <span class="k">catch</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;detected problem with an element&quot;</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">,</span> <span class="s2">&quot;DragDropMgr&quot;</span><span class="p">);</span>
            <span class="p">}</span>

            <span class="k">return</span> <span class="kc">false</span><span class="p">;</span>
        <span class="p">},</span>
        
        <span class="cm">/**</span>
<span class="cm">         * Returns a Region object containing the drag and drop element&#39;s position</span>
<span class="cm">         * and size, including the padding configured for it</span>
<span class="cm">         * @method getLocation</span>
<span class="cm">         * @param {DragDrop} oDD the drag and drop object to get the </span>
<span class="cm">         *                       location for</span>
<span class="cm">         * @return {YAHOO.util.Region} a Region object representing the total area</span>
<span class="cm">         *                             the element occupies, including any padding</span>
<span class="cm">         *                             the instance is configured for.</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">getLocation</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">oDD</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">if</span> <span class="p">(</span><span class="o">!</span> <span class="k">this</span><span class="p">.</span><span class="nx">isTypeOfDD</span><span class="p">(</span><span class="nx">oDD</span><span class="p">))</span> <span class="p">{</span>
                <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">oDD</span> <span class="o">+</span> <span class="s2">&quot; is not a DD obj&quot;</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">,</span> <span class="s2">&quot;DragDropMgr&quot;</span><span class="p">);</span>
                <span class="k">return</span> <span class="kc">null</span><span class="p">;</span>
            <span class="p">}</span>

            <span class="kd">var</span> <span class="nx">el</span> <span class="o">=</span> <span class="nx">oDD</span><span class="p">.</span><span class="nx">getEl</span><span class="p">(),</span> <span class="nx">pos</span><span class="p">,</span> <span class="nx">x1</span><span class="p">,</span> <span class="nx">x2</span><span class="p">,</span> <span class="nx">y1</span><span class="p">,</span> <span class="nx">y2</span><span class="p">,</span> <span class="nx">t</span><span class="p">,</span> <span class="nx">r</span><span class="p">,</span> <span class="nx">b</span><span class="p">,</span> <span class="nx">l</span><span class="p">;</span>

            <span class="k">try</span> <span class="p">{</span>
                <span class="nx">pos</span><span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getXY</span><span class="p">(</span><span class="nx">el</span><span class="p">);</span>
            <span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span>

            <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">pos</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;getXY failed&quot;</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">,</span> <span class="s2">&quot;DragDropMgr&quot;</span><span class="p">);</span>
                <span class="k">return</span> <span class="kc">null</span><span class="p">;</span>
            <span class="p">}</span>

            <span class="nx">x1</span> <span class="o">=</span> <span class="nx">pos</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
            <span class="nx">x2</span> <span class="o">=</span> <span class="nx">x1</span> <span class="o">+</span> <span class="nx">el</span><span class="p">.</span><span class="nx">offsetWidth</span><span class="p">;</span>
            <span class="nx">y1</span> <span class="o">=</span> <span class="nx">pos</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span>
            <span class="nx">y2</span> <span class="o">=</span> <span class="nx">y1</span> <span class="o">+</span> <span class="nx">el</span><span class="p">.</span><span class="nx">offsetHeight</span><span class="p">;</span>

            <span class="nx">t</span> <span class="o">=</span> <span class="nx">y1</span> <span class="o">-</span> <span class="nx">oDD</span><span class="p">.</span><span class="nx">padding</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
            <span class="nx">r</span> <span class="o">=</span> <span class="nx">x2</span> <span class="o">+</span> <span class="nx">oDD</span><span class="p">.</span><span class="nx">padding</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span>
            <span class="nx">b</span> <span class="o">=</span> <span class="nx">y2</span> <span class="o">+</span> <span class="nx">oDD</span><span class="p">.</span><span class="nx">padding</span><span class="p">[</span><span class="mi">2</span><span class="p">];</span>
            <span class="nx">l</span> <span class="o">=</span> <span class="nx">x1</span> <span class="o">-</span> <span class="nx">oDD</span><span class="p">.</span><span class="nx">padding</span><span class="p">[</span><span class="mi">3</span><span class="p">];</span>

            <span class="k">return</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Region</span><span class="p">(</span> <span class="nx">t</span><span class="p">,</span> <span class="nx">r</span><span class="p">,</span> <span class="nx">b</span><span class="p">,</span> <span class="nx">l</span> <span class="p">);</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Checks the cursor location to see if it over the target</span>
<span class="cm">         * @method isOverTarget</span>
<span class="cm">         * @param {YAHOO.util.Point} pt The point to evaluate</span>
<span class="cm">         * @param {DragDrop} oTarget the DragDrop object we are inspecting</span>
<span class="cm">         * @param {boolean} intersect true if we are in intersect mode</span>
<span class="cm">         * @param {YAHOO.util.Region} pre-cached location of the dragged element</span>
<span class="cm">         * @return {boolean} true if the mouse is over the target</span>
<span class="cm">         * @private</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">isOverTarget</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">pt</span><span class="p">,</span> <span class="nx">oTarget</span><span class="p">,</span> <span class="nx">intersect</span><span class="p">,</span> <span class="nx">curRegion</span><span class="p">)</span> <span class="p">{</span>
            <span class="c1">// use cache if available</span>
            <span class="kd">var</span> <span class="nx">loc</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">locationCache</span><span class="p">[</span><span class="nx">oTarget</span><span class="p">.</span><span class="nx">id</span><span class="p">];</span>
            <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">loc</span> <span class="o">||</span> <span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">useCache</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;cache not populated&quot;</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">,</span> <span class="s2">&quot;DragDropMgr&quot;</span><span class="p">);</span>
                <span class="nx">loc</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getLocation</span><span class="p">(</span><span class="nx">oTarget</span><span class="p">);</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">locationCache</span><span class="p">[</span><span class="nx">oTarget</span><span class="p">.</span><span class="nx">id</span><span class="p">]</span> <span class="o">=</span> <span class="nx">loc</span><span class="p">;</span>

                <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;cache: &quot;</span> <span class="o">+</span> <span class="nx">loc</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">,</span> <span class="s2">&quot;DragDropMgr&quot;</span><span class="p">);</span>
            <span class="p">}</span>

            <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">loc</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;could not get the location of the element&quot;</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">,</span> <span class="s2">&quot;DragDropMgr&quot;</span><span class="p">);</span>
                <span class="k">return</span> <span class="kc">false</span><span class="p">;</span>
            <span class="p">}</span>

            <span class="c1">//YAHOO.log(&quot;loc: &quot; + loc + &quot;, pt: &quot; + pt);</span>
            <span class="nx">oTarget</span><span class="p">.</span><span class="nx">cursorIsOver</span> <span class="o">=</span> <span class="nx">loc</span><span class="p">.</span><span class="nx">contains</span><span class="p">(</span> <span class="nx">pt</span> <span class="p">);</span>

            <span class="c1">// DragDrop is using this as a sanity check for the initial mousedown</span>
            <span class="c1">// in this case we are done.  In POINT mode, if the drag obj has no</span>
            <span class="c1">// contraints, we are done. Otherwise we need to evaluate the </span>
            <span class="c1">// region the target as occupies to determine if the dragged element</span>
            <span class="c1">// overlaps with it.</span>
            
            <span class="kd">var</span> <span class="nx">dc</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">dragCurrent</span><span class="p">;</span>
            <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">dc</span> <span class="o">||</span> <span class="p">(</span><span class="o">!</span><span class="nx">intersect</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="nx">dc</span><span class="p">.</span><span class="nx">constrainX</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="nx">dc</span><span class="p">.</span><span class="nx">constrainY</span><span class="p">))</span> <span class="p">{</span>

                <span class="c1">//if (oTarget.cursorIsOver) {</span>
                    <span class="c1">//YAHOO.log(&quot;over &quot; + oTarget + &quot;, &quot; + loc + &quot;, &quot; + pt, &quot;warn&quot;);</span>
                <span class="c1">//}</span>
                <span class="k">return</span> <span class="nx">oTarget</span><span class="p">.</span><span class="nx">cursorIsOver</span><span class="p">;</span>
            <span class="p">}</span>

            <span class="nx">oTarget</span><span class="p">.</span><span class="nx">overlap</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>


            <span class="c1">// Get the current location of the drag element, this is the</span>
            <span class="c1">// location of the mouse event less the delta that represents</span>
            <span class="c1">// where the original mousedown happened on the element.  We</span>
            <span class="c1">// need to consider constraints and ticks as well.</span>

            <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">curRegion</span><span class="p">)</span> <span class="p">{</span>
                <span class="kd">var</span> <span class="nx">pos</span> <span class="o">=</span> <span class="nx">dc</span><span class="p">.</span><span class="nx">getTargetCoord</span><span class="p">(</span><span class="nx">pt</span><span class="p">.</span><span class="nx">x</span><span class="p">,</span> <span class="nx">pt</span><span class="p">.</span><span class="nx">y</span><span class="p">);</span>
                <span class="kd">var</span> <span class="nx">el</span> <span class="o">=</span> <span class="nx">dc</span><span class="p">.</span><span class="nx">getDragEl</span><span class="p">();</span>
                <span class="nx">curRegion</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Region</span><span class="p">(</span> <span class="nx">pos</span><span class="p">.</span><span class="nx">y</span><span class="p">,</span> 
                                                   <span class="nx">pos</span><span class="p">.</span><span class="nx">x</span> <span class="o">+</span> <span class="nx">el</span><span class="p">.</span><span class="nx">offsetWidth</span><span class="p">,</span>
                                                   <span class="nx">pos</span><span class="p">.</span><span class="nx">y</span> <span class="o">+</span> <span class="nx">el</span><span class="p">.</span><span class="nx">offsetHeight</span><span class="p">,</span> 
                                                   <span class="nx">pos</span><span class="p">.</span><span class="nx">x</span> <span class="p">);</span>
            <span class="p">}</span>

            <span class="kd">var</span> <span class="nx">overlap</span> <span class="o">=</span> <span class="nx">curRegion</span><span class="p">.</span><span class="nx">intersect</span><span class="p">(</span><span class="nx">loc</span><span class="p">);</span>

            <span class="k">if</span> <span class="p">(</span><span class="nx">overlap</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">oTarget</span><span class="p">.</span><span class="nx">overlap</span> <span class="o">=</span> <span class="nx">overlap</span><span class="p">;</span>
                <span class="k">return</span> <span class="p">(</span><span class="nx">intersect</span><span class="p">)</span> <span class="o">?</span> <span class="kc">true</span> <span class="o">:</span> <span class="nx">oTarget</span><span class="p">.</span><span class="nx">cursorIsOver</span><span class="p">;</span>
            <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                <span class="k">return</span> <span class="kc">false</span><span class="p">;</span>
            <span class="p">}</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * unload event handler</span>
<span class="cm">         * @method _onUnload</span>
<span class="cm">         * @private</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">_onUnload</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">,</span> <span class="nx">me</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">unregAll</span><span class="p">();</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Cleans up the drag and drop events and objects.</span>
<span class="cm">         * @method unregAll</span>
<span class="cm">         * @private</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">unregAll</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
            <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;unregister all&quot;</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">,</span> <span class="s2">&quot;DragDropMgr&quot;</span><span class="p">);</span>

            <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">dragCurrent</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">stopDrag</span><span class="p">();</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">dragCurrent</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
            <span class="p">}</span>

            <span class="k">this</span><span class="p">.</span><span class="nx">_execOnAll</span><span class="p">(</span><span class="s2">&quot;unreg&quot;</span><span class="p">,</span> <span class="p">[]);</span>

            <span class="c1">//for (var i in this.elementCache) {</span>
                <span class="c1">//delete this.elementCache[i];</span>
            <span class="c1">//}</span>
            <span class="c1">//this.elementCache = {};</span>

            <span class="k">this</span><span class="p">.</span><span class="nx">ids</span> <span class="o">=</span> <span class="p">{};</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * A cache of DOM elements</span>
<span class="cm">         * @property elementCache</span>
<span class="cm">         * @private</span>
<span class="cm">         * @static</span>
<span class="cm">         * @deprecated elements are not cached now</span>
<span class="cm">         */</span>
        <span class="nx">elementCache</span><span class="o">:</span> <span class="p">{},</span>
        
        <span class="cm">/**</span>
<span class="cm">         * Get the wrapper for the DOM element specified</span>
<span class="cm">         * @method getElWrapper</span>
<span class="cm">         * @param {String} id the id of the element to get</span>
<span class="cm">         * @return {YAHOO.util.DDM.ElementWrapper} the wrapped element</span>
<span class="cm">         * @private</span>
<span class="cm">         * @deprecated This wrapper isn&#39;t that useful</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">getElWrapper</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">id</span><span class="p">)</span> <span class="p">{</span>
            <span class="kd">var</span> <span class="nx">oWrapper</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">elementCache</span><span class="p">[</span><span class="nx">id</span><span class="p">];</span>
            <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">oWrapper</span> <span class="o">||</span> <span class="o">!</span><span class="nx">oWrapper</span><span class="p">.</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">oWrapper</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">elementCache</span><span class="p">[</span><span class="nx">id</span><span class="p">]</span> <span class="o">=</span> 
                    <span class="k">new</span> <span class="k">this</span><span class="p">.</span><span class="nx">ElementWrapper</span><span class="p">(</span><span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">id</span><span class="p">));</span>
            <span class="p">}</span>
            <span class="k">return</span> <span class="nx">oWrapper</span><span class="p">;</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Returns the actual DOM element</span>
<span class="cm">         * @method getElement</span>
<span class="cm">         * @param {String} id the id of the elment to get</span>
<span class="cm">         * @return {Object} The element</span>
<span class="cm">         * @deprecated use YAHOO.util.Dom.get instead</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">getElement</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">id</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">return</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">id</span><span class="p">);</span>
        <span class="p">},</span>
        
        <span class="cm">/**</span>
<span class="cm">         * Returns the style property for the DOM element (i.e., </span>
<span class="cm">         * document.getElById(id).style)</span>
<span class="cm">         * @method getCss</span>
<span class="cm">         * @param {String} id the id of the elment to get</span>
<span class="cm">         * @return {Object} The style property of the element</span>
<span class="cm">         * @deprecated use YAHOO.util.Dom instead</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">getCss</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">id</span><span class="p">)</span> <span class="p">{</span>
            <span class="kd">var</span> <span class="nx">el</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">id</span><span class="p">);</span>
            <span class="k">return</span> <span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="o">?</span> <span class="nx">el</span><span class="p">.</span><span class="nx">style</span> <span class="o">:</span> <span class="kc">null</span><span class="p">;</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Inner class for cached elements</span>
<span class="cm">         * @class DragDropMgr.ElementWrapper</span>
<span class="cm">         * @for DragDropMgr</span>
<span class="cm">         * @private</span>
<span class="cm">         * @deprecated</span>
<span class="cm">         */</span>
        <span class="nx">ElementWrapper</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span>
                <span class="cm">/**</span>
<span class="cm">                 * The element</span>
<span class="cm">                 * @property el</span>
<span class="cm">                 */</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">el</span> <span class="o">=</span> <span class="nx">el</span> <span class="o">||</span> <span class="kc">null</span><span class="p">;</span>
                <span class="cm">/**</span>
<span class="cm">                 * The element id</span>
<span class="cm">                 * @property id</span>
<span class="cm">                 */</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">id</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">el</span> <span class="o">&amp;&amp;</span> <span class="nx">el</span><span class="p">.</span><span class="nx">id</span><span class="p">;</span>
                <span class="cm">/**</span>
<span class="cm">                 * A reference to the style property</span>
<span class="cm">                 * @property css</span>
<span class="cm">                 */</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">css</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">el</span> <span class="o">&amp;&amp;</span> <span class="nx">el</span><span class="p">.</span><span class="nx">style</span><span class="p">;</span>
            <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Returns the X position of an html element</span>
<span class="cm">         * @method getPosX</span>
<span class="cm">         * @param el the element for which to get the position</span>
<span class="cm">         * @return {int} the X coordinate</span>
<span class="cm">         * @for DragDropMgr</span>
<span class="cm">         * @deprecated use YAHOO.util.Dom.getX instead</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">getPosX</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">return</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getX</span><span class="p">(</span><span class="nx">el</span><span class="p">);</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Returns the Y position of an html element</span>
<span class="cm">         * @method getPosY</span>
<span class="cm">         * @param el the element for which to get the position</span>
<span class="cm">         * @return {int} the Y coordinate</span>
<span class="cm">         * @deprecated use YAHOO.util.Dom.getY instead</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">getPosY</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">return</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getY</span><span class="p">(</span><span class="nx">el</span><span class="p">);</span> 
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Swap two nodes.  In IE, we use the native method, for others we </span>
<span class="cm">         * emulate the IE behavior</span>
<span class="cm">         * @method swapNode</span>
<span class="cm">         * @param n1 the first node to swap</span>
<span class="cm">         * @param n2 the other node to swap</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">swapNode</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">n1</span><span class="p">,</span> <span class="nx">n2</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">if</span> <span class="p">(</span><span class="nx">n1</span><span class="p">.</span><span class="nx">swapNode</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">n1</span><span class="p">.</span><span class="nx">swapNode</span><span class="p">(</span><span class="nx">n2</span><span class="p">);</span>
            <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                <span class="kd">var</span> <span class="nx">p</span> <span class="o">=</span> <span class="nx">n2</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">;</span>
                <span class="kd">var</span> <span class="nx">s</span> <span class="o">=</span> <span class="nx">n2</span><span class="p">.</span><span class="nx">nextSibling</span><span class="p">;</span>

                <span class="k">if</span> <span class="p">(</span><span class="nx">s</span> <span class="o">==</span> <span class="nx">n1</span><span class="p">)</span> <span class="p">{</span>
                    <span class="nx">p</span><span class="p">.</span><span class="nx">insertBefore</span><span class="p">(</span><span class="nx">n1</span><span class="p">,</span> <span class="nx">n2</span><span class="p">);</span>
                <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">n2</span> <span class="o">==</span> <span class="nx">n1</span><span class="p">.</span><span class="nx">nextSibling</span><span class="p">)</span> <span class="p">{</span>
                    <span class="nx">p</span><span class="p">.</span><span class="nx">insertBefore</span><span class="p">(</span><span class="nx">n2</span><span class="p">,</span> <span class="nx">n1</span><span class="p">);</span>
                <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                    <span class="nx">n1</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">.</span><span class="nx">replaceChild</span><span class="p">(</span><span class="nx">n2</span><span class="p">,</span> <span class="nx">n1</span><span class="p">);</span>
                    <span class="nx">p</span><span class="p">.</span><span class="nx">insertBefore</span><span class="p">(</span><span class="nx">n1</span><span class="p">,</span> <span class="nx">s</span><span class="p">);</span>
                <span class="p">}</span>
            <span class="p">}</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Returns the current scroll position</span>
<span class="cm">         * @method getScroll</span>
<span class="cm">         * @private</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">getScroll</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
            <span class="kd">var</span> <span class="nx">t</span><span class="p">,</span> <span class="nx">l</span><span class="p">,</span> <span class="nx">dde</span><span class="o">=</span><span class="nb">document</span><span class="p">.</span><span class="nx">documentElement</span><span class="p">,</span> <span class="nx">db</span><span class="o">=</span><span class="nb">document</span><span class="p">.</span><span class="nx">body</span><span class="p">;</span>
            <span class="k">if</span> <span class="p">(</span><span class="nx">dde</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="nx">dde</span><span class="p">.</span><span class="nx">scrollTop</span> <span class="o">||</span> <span class="nx">dde</span><span class="p">.</span><span class="nx">scrollLeft</span><span class="p">))</span> <span class="p">{</span>
                <span class="nx">t</span> <span class="o">=</span> <span class="nx">dde</span><span class="p">.</span><span class="nx">scrollTop</span><span class="p">;</span>
                <span class="nx">l</span> <span class="o">=</span> <span class="nx">dde</span><span class="p">.</span><span class="nx">scrollLeft</span><span class="p">;</span>
            <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">db</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">t</span> <span class="o">=</span> <span class="nx">db</span><span class="p">.</span><span class="nx">scrollTop</span><span class="p">;</span>
                <span class="nx">l</span> <span class="o">=</span> <span class="nx">db</span><span class="p">.</span><span class="nx">scrollLeft</span><span class="p">;</span>
            <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;could not get scroll property&quot;</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">,</span> <span class="s2">&quot;DragDropMgr&quot;</span><span class="p">);</span>
            <span class="p">}</span>
            <span class="k">return</span> <span class="p">{</span> <span class="nx">top</span><span class="o">:</span> <span class="nx">t</span><span class="p">,</span> <span class="nx">left</span><span class="o">:</span> <span class="nx">l</span> <span class="p">};</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Returns the specified element style property</span>
<span class="cm">         * @method getStyle</span>
<span class="cm">         * @param {HTMLElement} el          the element</span>
<span class="cm">         * @param {string}      styleProp   the style property</span>
<span class="cm">         * @return {string} The value of the style property</span>
<span class="cm">         * @deprecated use YAHOO.util.Dom.getStyle</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">getStyle</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">styleProp</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">return</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getStyle</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">styleProp</span><span class="p">);</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Gets the scrollTop</span>
<span class="cm">         * @method getScrollTop</span>
<span class="cm">         * @return {int} the document&#39;s scrollTop</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">getScrollTop</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">getScroll</span><span class="p">().</span><span class="nx">top</span><span class="p">;</span> <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Gets the scrollLeft</span>
<span class="cm">         * @method getScrollLeft</span>
<span class="cm">         * @return {int} the document&#39;s scrollTop</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">getScrollLeft</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">getScroll</span><span class="p">().</span><span class="nx">left</span><span class="p">;</span> <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Sets the x/y position of an element to the location of the</span>
<span class="cm">         * target element.</span>
<span class="cm">         * @method moveToEl</span>
<span class="cm">         * @param {HTMLElement} moveEl      The element to move</span>
<span class="cm">         * @param {HTMLElement} targetEl    The position reference element</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">moveToEl</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">moveEl</span><span class="p">,</span> <span class="nx">targetEl</span><span class="p">)</span> <span class="p">{</span>
            <span class="kd">var</span> <span class="nx">aCoord</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getXY</span><span class="p">(</span><span class="nx">targetEl</span><span class="p">);</span>
            <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;moveToEl: &quot;</span> <span class="o">+</span> <span class="nx">aCoord</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">,</span> <span class="s2">&quot;DragDropMgr&quot;</span><span class="p">);</span>
            <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">setXY</span><span class="p">(</span><span class="nx">moveEl</span><span class="p">,</span> <span class="nx">aCoord</span><span class="p">);</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Gets the client height</span>
<span class="cm">         * @method getClientHeight</span>
<span class="cm">         * @return {int} client height in px</span>
<span class="cm">         * @deprecated use YAHOO.util.Dom.getViewportHeight instead</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">getClientHeight</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
            <span class="k">return</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getViewportHeight</span><span class="p">();</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Gets the client width</span>
<span class="cm">         * @method getClientWidth</span>
<span class="cm">         * @return {int} client width in px</span>
<span class="cm">         * @deprecated use YAHOO.util.Dom.getViewportWidth instead</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">getClientWidth</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
            <span class="k">return</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getViewportWidth</span><span class="p">();</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Numeric array sort function</span>
<span class="cm">         * @method numericSort</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">numericSort</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span> <span class="nx">b</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="p">(</span><span class="nx">a</span> <span class="o">-</span> <span class="nx">b</span><span class="p">);</span> <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Internal counter</span>
<span class="cm">         * @property _timeoutCount</span>
<span class="cm">         * @private</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">_timeoutCount</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span>

        <span class="cm">/**</span>
<span class="cm">         * Trying to make the load order less important.  Without this we get</span>
<span class="cm">         * an error if this file is loaded before the Event Utility.</span>
<span class="cm">         * @method _addListeners</span>
<span class="cm">         * @private</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">_addListeners</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
            <span class="kd">var</span> <span class="nx">DDM</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">DDM</span><span class="p">;</span>
            <span class="k">if</span> <span class="p">(</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Event</span> <span class="o">&amp;&amp;</span> <span class="nb">document</span> <span class="p">)</span> <span class="p">{</span>
                <span class="nx">DDM</span><span class="p">.</span><span class="nx">_onLoad</span><span class="p">();</span>
            <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                <span class="k">if</span> <span class="p">(</span><span class="nx">DDM</span><span class="p">.</span><span class="nx">_timeoutCount</span> <span class="o">&gt;</span> <span class="mi">2000</span><span class="p">)</span> <span class="p">{</span>
                    <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;DragDrop requires the Event Utility&quot;</span><span class="p">,</span> <span class="s2">&quot;error&quot;</span><span class="p">,</span> <span class="s2">&quot;DragDropMgr&quot;</span><span class="p">);</span>
                <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                    <span class="nx">setTimeout</span><span class="p">(</span><span class="nx">DDM</span><span class="p">.</span><span class="nx">_addListeners</span><span class="p">,</span> <span class="mi">10</span><span class="p">);</span>
                    <span class="k">if</span> <span class="p">(</span><span class="nb">document</span> <span class="o">&amp;&amp;</span> <span class="nb">document</span><span class="p">.</span><span class="nx">body</span><span class="p">)</span> <span class="p">{</span>
                        <span class="nx">DDM</span><span class="p">.</span><span class="nx">_timeoutCount</span> <span class="o">+=</span> <span class="mi">1</span><span class="p">;</span>
                    <span class="p">}</span>
                <span class="p">}</span>
            <span class="p">}</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Recursively searches the immediate parent and all child nodes for </span>
<span class="cm">         * the handle element in order to determine wheter or not it was </span>
<span class="cm">         * clicked.</span>
<span class="cm">         * @method handleWasClicked</span>
<span class="cm">         * @param node the html element to inspect</span>
<span class="cm">         * @static</span>
<span class="cm">         */</span>
        <span class="nx">handleWasClicked</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">id</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">isHandle</span><span class="p">(</span><span class="nx">id</span><span class="p">,</span> <span class="nx">node</span><span class="p">.</span><span class="nx">id</span><span class="p">))</span> <span class="p">{</span>
                <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;clicked node is a handle&quot;</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">,</span> <span class="s2">&quot;DragDropMgr&quot;</span><span class="p">);</span>
                <span class="k">return</span> <span class="kc">true</span><span class="p">;</span>
            <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                <span class="c1">// check to see if this is a text node child of the one we want</span>
                <span class="kd">var</span> <span class="nx">p</span> <span class="o">=</span> <span class="nx">node</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">;</span>
                <span class="c1">// YAHOO.log(&quot;p: &quot; + p);</span>

                <span class="k">while</span> <span class="p">(</span><span class="nx">p</span><span class="p">)</span> <span class="p">{</span>
                    <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">isHandle</span><span class="p">(</span><span class="nx">id</span><span class="p">,</span> <span class="nx">p</span><span class="p">.</span><span class="nx">id</span><span class="p">))</span> <span class="p">{</span>
                        <span class="k">return</span> <span class="kc">true</span><span class="p">;</span>
                    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                        <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">p</span><span class="p">.</span><span class="nx">id</span> <span class="o">+</span> <span class="s2">&quot; is not a handle&quot;</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">,</span> <span class="s2">&quot;DragDropMgr&quot;</span><span class="p">);</span>
                        <span class="nx">p</span> <span class="o">=</span> <span class="nx">p</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">;</span>
                    <span class="p">}</span>
                <span class="p">}</span>
            <span class="p">}</span>

            <span class="k">return</span> <span class="kc">false</span><span class="p">;</span>
        <span class="p">}</span>

    <span class="p">};</span>

<span class="p">}();</span>

<span class="c1">// shorter alias, save a few bytes</span>
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">DDM</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">DragDropMgr</span><span class="p">;</span>
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">DDM</span><span class="p">.</span><span class="nx">_addListeners</span><span class="p">();</span>

<span class="p">}</span>
</pre></div>

                    </div>
			</div>
		</div>
		<div class="yui-b">
            <div class="nav">

                    <div id="moduleList" class="module">
                        <h4>Modules</h4>
                        <ul class="content">
                                <li class=""><a href="module_animation.html" title="animation">animation</a></li>
                                <li class=""><a href="module_autocomplete.html" title="autocomplete">autocomplete</a></li>
                                <li class=""><a href="module_button.html" title="button">button</a></li>
                                <li class=""><a href="module_calendar.html" title="calendar">calendar</a></li>
                                <li class=""><a href="module_carousel.html" title="carousel">carousel</a></li>
                                <li class=""><a href="module_charts.html" title="charts">charts</a></li>
                                <li class=""><a href="module_colorpicker.html" title="colorpicker">colorpicker</a></li>
                                <li class=""><a href="module_connection.html" title="connection">connection</a></li>
                                <li class=""><a href="module_container.html" title="container">container</a></li>
                                <li class=""><a href="module_cookie.html" title="cookie">cookie</a></li>
                                <li class=""><a href="module_datasource.html" title="datasource">datasource</a></li>
                                <li class=""><a href="module_datatable.html" title="datatable">datatable</a></li>
                                <li class=""><a href="module_datemath.html" title="datemath">datemath</a></li>
                                <li class=""><a href="module_dom.html" title="dom">dom</a></li>
                                <li class="selected"><a href="module_dragdrop.html" title="dragdrop">dragdrop</a></li>
                                <li class=""><a href="module_editor.html" title="editor">editor</a></li>
                                <li class=""><a href="module_element.html" title="element">element</a></li>
                                <li class=""><a href="module_element-delegate.html" title="element-delegate">element-delegate</a></li>
                                <li class=""><a href="module_event.html" title="event">event</a></li>
                                <li class=""><a href="module_event-delegate.html" title="event-delegate">event-delegate</a></li>
                                <li class=""><a href="module_event-mouseenter.html" title="event-mouseenter">event-mouseenter</a></li>
                                <li class=""><a href="module_event-simulate.html" title="event-simulate">event-simulate</a></li>
                                <li class=""><a href="module_get.html" title="get">get</a></li>
                                <li class=""><a href="module_history.html" title="history">history</a></li>
                                <li class=""><a href="module_imagecropper.html" title="imagecropper">imagecropper</a></li>
                                <li class=""><a href="module_imageloader.html" title="imageloader">imageloader</a></li>
                                <li class=""><a href="module_json.html" title="json">json</a></li>
                                <li class=""><a href="module_layout.html" title="layout">layout</a></li>
                                <li class=""><a href="module_logger.html" title="logger">logger</a></li>
                                <li class=""><a href="module_menu.html" title="menu">menu</a></li>
                                <li class=""><a href="module_paginator.html" title="paginator">paginator</a></li>
                                <li class=""><a href="module_profiler.html" title="profiler">profiler</a></li>
                                <li class=""><a href="module_profilerviewer.html" title="profilerviewer">profilerviewer</a></li>
                                <li class=""><a href="module_progressbar.html" title="progressbar">progressbar</a></li>
                                <li class=""><a href="module_resize.html" title="resize">resize</a></li>
                                <li class=""><a href="module_selector.html" title="selector">selector</a></li>
                                <li class=""><a href="module_slider.html" title="slider">slider</a></li>
                                <li class=""><a href="module_storage.html" title="Storage">Storage</a></li>
                                <li class=""><a href="module_stylesheet.html" title="stylesheet">stylesheet</a></li>
                                <li class=""><a href="module_swf.html" title="swf">swf</a></li>
                                <li class=""><a href="module_swfdetect.html" title="swfdetect">swfdetect</a></li>
                                <li class=""><a href="module_swfstore.html" title="swfstore">swfstore</a></li>
                                <li class=""><a href="module_tabview.html" title="tabview">tabview</a></li>
                                <li class=""><a href="module_treeview.html" title="treeview">treeview</a></li>
                                <li class=""><a href="module_uploader.html" title="uploader">uploader</a></li>
                                <li class=""><a href="module_yahoo.html" title="yahoo">yahoo</a></li>
                                <li class=""><a href="module_yuiloader.html" title="yuiloader">yuiloader</a></li>
                                <li class=""><a href="module_yuitest.html" title="yuitest">yuitest</a></li>
                        </ul>
                    </div>

                    <div id="classList" class="module">
                        <h4>Classes</h4>
                        <ul class="content">
                                <li class=""><a href="DD.html" title="DD">DD</a></li>
                                <li class=""><a href="DDProxy.html" title="DDProxy">DDProxy</a></li>
                                <li class=""><a href="DDTarget.html" title="DDTarget">DDTarget</a></li>
                                <li class=""><a href="YAHOO.util.DragDrop.html" title="YAHOO.util.DragDrop">YAHOO.util.DragDrop</a></li>
                                <li class=""><a href="YAHOO.util.DragDropMgr.html" title="YAHOO.util.DragDropMgr">YAHOO.util.DragDropMgr</a></li>
                                <li class=""><a href="YAHOO.util.DragDropMgr.ElementWrapper.html" title="YAHOO.util.DragDropMgr.ElementWrapper">YAHOO.util.DragDropMgr.ElementWrapper</a></li>
                        </ul>
                    </div>

                    <div id="fileList" class="module">
                        <h4>Files</h4>
                        <ul class="content">        
                                <li class=""><a href="DD.js.html" title="DD.js">DD.js</a></li>
                                <li class=""><a href="DDProxy.js.html" title="DDProxy.js">DDProxy.js</a></li>
                                <li class=""><a href="DDTarget.js.html" title="DDTarget.js">DDTarget.js</a></li>
                                <li class=""><a href="DragDrop.js.html" title="DragDrop.js">DragDrop.js</a></li>
                                <li class="selected"><a href="DragDropMgr.js.html" title="DragDropMgr.js">DragDropMgr.js</a></li>
                        </ul>
                    </div>





            </div>
		</div>
	</div>
	<div id="ft">
        <hr />
        Copyright &copy; 2011 Yahoo! Inc. All rights reserved.
	</div>
</div>
<script type="text/javascript">

    var ALL_YUI_PROPS = [{"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "_activateShim", "url": "YAHOO.util.DragDropMgr.html#method__activateShim", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "addInvalidHandleClass", "url": "YAHOO.util.DragDrop.html#method_addInvalidHandleClass", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "addInvalidHandleId", "url": "YAHOO.util.DragDrop.html#method_addInvalidHandleId", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "addInvalidHandleType", "url": "YAHOO.util.DragDrop.html#method_addInvalidHandleType", "type": "method"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "_addListeners", "url": "YAHOO.util.DragDropMgr.html#method__addListeners", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "addToGroup", "url": "YAHOO.util.DragDrop.html#method_addToGroup", "type": "method"}, {"access": "", "host": "DD", "name": "alignElWithMouse", "url": "DD.html#method_alignElWithMouse", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "applyConfig", "url": "YAHOO.util.DragDrop.html#method_applyConfig", "type": "method"}, {"access": "", "host": "DD", "name": "autoOffset", "url": "DD.html#method_autoOffset", "type": "method"}, {"access": "private", "host": "DD", "name": "autoScroll", "url": "DD.html#method_autoScroll", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "available", "url": "YAHOO.util.DragDrop.html#property_available", "type": "property"}, {"access": "private", "host": "YAHOO.util.DragDrop", "name": "b4Drag", "url": "YAHOO.util.DragDrop.html#method_b4Drag", "type": "method"}, {"access": "private", "host": "YAHOO.util.DragDrop", "name": "b4DragDrop", "url": "YAHOO.util.DragDrop.html#method_b4DragDrop", "type": "method"}, {"access": "", "host": "DD", "name": "b4DragDropEvent", "url": "DD.html#event_b4DragDropEvent", "type": "event"}, {"access": "", "host": "DDProxy", "name": "b4DragDropEvent", "url": "DDProxy.html#event_b4DragDropEvent", "type": "event"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "b4DragDropEvent", "url": "YAHOO.util.DragDrop.html#event_b4DragDropEvent", "type": "event"}, {"access": "", "host": "DD", "name": "b4DragEvent", "url": "DD.html#event_b4DragEvent", "type": "event"}, {"access": "", "host": "DDProxy", "name": "b4DragEvent", "url": "DDProxy.html#event_b4DragEvent", "type": "event"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "b4DragEvent", "url": "YAHOO.util.DragDrop.html#event_b4DragEvent", "type": "event"}, {"access": "private", "host": "YAHOO.util.DragDrop", "name": "b4DragOut", "url": "YAHOO.util.DragDrop.html#method_b4DragOut", "type": "method"}, {"access": "", "host": "DD", "name": "b4DragOutEvent", "url": "DD.html#event_b4DragOutEvent", "type": "event"}, {"access": "", "host": "DDProxy", "name": "b4DragOutEvent", "url": "DDProxy.html#event_b4DragOutEvent", "type": "event"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "b4DragOutEvent", "url": "YAHOO.util.DragDrop.html#event_b4DragOutEvent", "type": "event"}, {"access": "private", "host": "YAHOO.util.DragDrop", "name": "b4DragOver", "url": "YAHOO.util.DragDrop.html#method_b4DragOver", "type": "method"}, {"access": "", "host": "DD", "name": "b4DragOverEvent", "url": "DD.html#event_b4DragOverEvent", "type": "event"}, {"access": "", "host": "DDProxy", "name": "b4DragOverEvent", "url": "DDProxy.html#event_b4DragOverEvent", "type": "event"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "b4DragOverEvent", "url": "YAHOO.util.DragDrop.html#event_b4DragOverEvent", "type": "event"}, {"access": "private", "host": "YAHOO.util.DragDrop", "name": "b4EndDrag", "url": "YAHOO.util.DragDrop.html#method_b4EndDrag", "type": "method"}, {"access": "", "host": "DD", "name": "b4EndDragEvent", "url": "DD.html#event_b4EndDragEvent", "type": "event"}, {"access": "", "host": "DDProxy", "name": "b4EndDragEvent", "url": "DDProxy.html#event_b4EndDragEvent", "type": "event"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "b4EndDragEvent", "url": "YAHOO.util.DragDrop.html#event_b4EndDragEvent", "type": "event"}, {"access": "private", "host": "YAHOO.util.DragDrop", "name": "b4MouseDown", "url": "YAHOO.util.DragDrop.html#method_b4MouseDown", "type": "method"}, {"access": "", "host": "DD", "name": "b4MouseDownEvent", "url": "DD.html#event_b4MouseDownEvent", "type": "event"}, {"access": "", "host": "DDProxy", "name": "b4MouseDownEvent", "url": "DDProxy.html#event_b4MouseDownEvent", "type": "event"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "b4MouseDownEvent", "url": "YAHOO.util.DragDrop.html#event_b4MouseDownEvent", "type": "event"}, {"access": "private", "host": "YAHOO.util.DragDrop", "name": "b4StartDrag", "url": "YAHOO.util.DragDrop.html#method_b4StartDrag", "type": "method"}, {"access": "", "host": "DD", "name": "b4StartDragEvent", "url": "DD.html#event_b4StartDragEvent", "type": "event"}, {"access": "", "host": "DDProxy", "name": "b4StartDragEvent", "url": "DDProxy.html#event_b4StartDragEvent", "type": "event"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "b4StartDragEvent", "url": "YAHOO.util.DragDrop.html#event_b4StartDragEvent", "type": "event"}, {"access": "", "host": "DD", "name": "cachePosition", "url": "DD.html#method_cachePosition", "type": "method"}, {"access": "", "host": "DDProxy", "name": "centerFrame", "url": "DDProxy.html#property_centerFrame", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "clearConstraints", "url": "YAHOO.util.DragDrop.html#method_clearConstraints", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "clearTicks", "url": "YAHOO.util.DragDrop.html#method_clearTicks", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "clickPixelThresh", "url": "YAHOO.util.DragDropMgr.html#property_clickPixelThresh", "type": "property"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "clickTimeout", "url": "YAHOO.util.DragDropMgr.html#property_clickTimeout", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "clickTimeThresh", "url": "YAHOO.util.DragDropMgr.html#property_clickTimeThresh", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "clickValidator", "url": "YAHOO.util.DragDrop.html#method_clickValidator", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "config", "url": "YAHOO.util.DragDrop.html#property_config", "type": "property"}, {"access": "private", "host": "YAHOO.util.DragDrop", "name": "constrainX", "url": "YAHOO.util.DragDrop.html#property_constrainX", "type": "property"}, {"access": "private", "host": "YAHOO.util.DragDrop", "name": "constrainY", "url": "YAHOO.util.DragDrop.html#property_constrainY", "type": "property"}, {"access": "", "host": "DDProxy", "name": "createFrame", "url": "DDProxy.html#method_createFrame", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDropMgr.ElementWrapper", "name": "css", "url": "YAHOO.util.DragDropMgr.ElementWrapper.html#property_css", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "cursorIsOver", "url": "YAHOO.util.DragDrop.html#property_cursorIsOver", "type": "property"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "_deactivateShim", "url": "YAHOO.util.DragDropMgr.html#method__deactivateShim", "type": "method"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "_debugShim", "url": "YAHOO.util.DragDropMgr.html#property__debugShim", "type": "property"}, {"access": "private", "host": "YAHOO.util.DragDrop", "name": "deltaX", "url": "YAHOO.util.DragDrop.html#property_deltaX", "type": "property"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "deltaX", "url": "YAHOO.util.DragDropMgr.html#property_deltaX", "type": "property"}, {"access": "private", "host": "YAHOO.util.DragDrop", "name": "deltaY", "url": "YAHOO.util.DragDrop.html#property_deltaY", "type": "property"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "deltaY", "url": "YAHOO.util.DragDropMgr.html#property_deltaY", "type": "property"}, {"access": "private", "host": "YAHOO.util.DragDrop", "name": "_domRef", "url": "YAHOO.util.DragDrop.html#property__domRef", "type": "property"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "dragCurrent", "url": "YAHOO.util.DragDropMgr.html#property_dragCurrent", "type": "property"}, {"access": "", "host": "DD", "name": "dragDropEvent", "url": "DD.html#event_dragDropEvent", "type": "event"}, {"access": "", "host": "DDProxy", "name": "dragDropEvent", "url": "DDProxy.html#event_dragDropEvent", "type": "event"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "dragDropEvent", "url": "YAHOO.util.DragDrop.html#event_dragDropEvent", "type": "event"}, {"access": "private", "host": "YAHOO.util.DragDrop", "name": "dragElId", "url": "YAHOO.util.DragDrop.html#property_dragElId", "type": "property"}, {"access": "", "host": "DD", "name": "dragEnterEvent", "url": "DD.html#event_dragEnterEvent", "type": "event"}, {"access": "", "host": "DDProxy", "name": "dragEnterEvent", "url": "DDProxy.html#event_dragEnterEvent", "type": "event"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "dragEnterEvent", "url": "YAHOO.util.DragDrop.html#event_dragEnterEvent", "type": "event"}, {"access": "", "host": "DD", "name": "dragEvent", "url": "DD.html#event_dragEvent", "type": "event"}, {"access": "", "host": "DDProxy", "name": "dragEvent", "url": "DDProxy.html#event_dragEvent", "type": "event"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "dragEvent", "url": "YAHOO.util.DragDrop.html#event_dragEvent", "type": "event"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "dragOnly", "url": "YAHOO.util.DragDrop.html#property_dragOnly", "type": "property"}, {"access": "", "host": "DD", "name": "dragOutEvent", "url": "DD.html#event_dragOutEvent", "type": "event"}, {"access": "", "host": "DDProxy", "name": "dragOutEvent", "url": "DDProxy.html#event_dragOutEvent", "type": "event"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "dragOutEvent", "url": "YAHOO.util.DragDrop.html#event_dragOutEvent", "type": "event"}, {"access": "", "host": "DD", "name": "dragOverEvent", "url": "DD.html#event_dragOverEvent", "type": "event"}, {"access": "", "host": "DDProxy", "name": "dragOverEvent", "url": "DDProxy.html#event_dragOverEvent", "type": "event"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "dragOverEvent", "url": "YAHOO.util.DragDrop.html#event_dragOverEvent", "type": "event"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "dragOvers", "url": "YAHOO.util.DragDropMgr.html#property_dragOvers", "type": "property"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "dragThreshMet", "url": "YAHOO.util.DragDropMgr.html#property_dragThreshMet", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDropMgr.ElementWrapper", "name": "el", "url": "YAHOO.util.DragDropMgr.ElementWrapper.html#property_el", "type": "property"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "elementCache", "url": "YAHOO.util.DragDropMgr.html#property_elementCache", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "endDrag", "url": "YAHOO.util.DragDrop.html#method_endDrag", "type": "method"}, {"access": "", "host": "DD", "name": "endDragEvent", "url": "DD.html#event_endDragEvent", "type": "event"}, {"access": "", "host": "DDProxy", "name": "endDragEvent", "url": "DDProxy.html#event_endDragEvent", "type": "event"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "endDragEvent", "url": "YAHOO.util.DragDrop.html#event_endDragEvent", "type": "event"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "events", "url": "YAHOO.util.DragDrop.html#property_events", "type": "property"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "_execOnAll", "url": "YAHOO.util.DragDropMgr.html#method__execOnAll", "type": "method"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "fireEvents", "url": "YAHOO.util.DragDropMgr.html#method_fireEvents", "type": "method"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "fromTimeout", "url": "YAHOO.util.DragDropMgr.html#property_fromTimeout", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "getBestMatch", "url": "YAHOO.util.DragDropMgr.html#method_getBestMatch", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "getClientHeight", "url": "YAHOO.util.DragDropMgr.html#method_getClientHeight", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "getClientWidth", "url": "YAHOO.util.DragDropMgr.html#method_getClientWidth", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "getCss", "url": "YAHOO.util.DragDropMgr.html#method_getCss", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "getDDById", "url": "YAHOO.util.DragDropMgr.html#method_getDDById", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "getDragEl", "url": "YAHOO.util.DragDrop.html#method_getDragEl", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "getEl", "url": "YAHOO.util.DragDrop.html#method_getEl", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "getElement", "url": "YAHOO.util.DragDropMgr.html#method_getElement", "type": "method"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "getElWrapper", "url": "YAHOO.util.DragDropMgr.html#method_getElWrapper", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "getLocation", "url": "YAHOO.util.DragDropMgr.html#method_getLocation", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "getPosX", "url": "YAHOO.util.DragDropMgr.html#method_getPosX", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "getPosY", "url": "YAHOO.util.DragDropMgr.html#method_getPosY", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "getRelated", "url": "YAHOO.util.DragDropMgr.html#method_getRelated", "type": "method"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "getScroll", "url": "YAHOO.util.DragDropMgr.html#method_getScroll", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "getScrollLeft", "url": "YAHOO.util.DragDropMgr.html#method_getScrollLeft", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "getScrollTop", "url": "YAHOO.util.DragDropMgr.html#method_getScrollTop", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "getStyle", "url": "YAHOO.util.DragDropMgr.html#method_getStyle", "type": "method"}, {"access": "private", "host": "YAHOO.util.DragDrop", "name": "getTargetCoord", "url": "YAHOO.util.DragDrop.html#method_getTargetCoord", "type": "method"}, {"access": "private", "host": "YAHOO.util.DragDrop", "name": "getTick", "url": "YAHOO.util.DragDrop.html#method_getTick", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "groups", "url": "YAHOO.util.DragDrop.html#property_groups", "type": "property"}, {"access": "private", "host": "YAHOO.util.DragDrop", "name": "handleElId", "url": "YAHOO.util.DragDrop.html#property_handleElId", "type": "property"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "handleIds", "url": "YAHOO.util.DragDropMgr.html#property_handleIds", "type": "property"}, {"access": "private", "host": "YAHOO.util.DragDrop", "name": "handleMouseDown", "url": "YAHOO.util.DragDrop.html#method_handleMouseDown", "type": "method"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "handleMouseDown", "url": "YAHOO.util.DragDropMgr.html#method_handleMouseDown", "type": "method"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "handleMouseMove", "url": "YAHOO.util.DragDropMgr.html#method_handleMouseMove", "type": "method"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "handleMouseUp", "url": "YAHOO.util.DragDropMgr.html#method_handleMouseUp", "type": "method"}, {"access": "private", "host": "YAHOO.util.DragDrop", "name": "handleOnAvailable", "url": "YAHOO.util.DragDrop.html#method_handleOnAvailable", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "handleWasClicked", "url": "YAHOO.util.DragDropMgr.html#method_handleWasClicked", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "hasOuterHandles", "url": "YAHOO.util.DragDrop.html#property_hasOuterHandles", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "id", "url": "YAHOO.util.DragDrop.html#property_id", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDropMgr.ElementWrapper", "name": "id", "url": "YAHOO.util.DragDropMgr.ElementWrapper.html#property_id", "type": "property"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "ids", "url": "YAHOO.util.DragDropMgr.html#property_ids", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "init", "url": "YAHOO.util.DragDrop.html#method_init", "type": "method"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "init", "url": "YAHOO.util.DragDropMgr.html#method_init", "type": "method"}, {"access": "", "host": "DDProxy", "name": "initFrame", "url": "DDProxy.html#method_initFrame", "type": "method"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "initialized", "url": "YAHOO.util.DragDropMgr.html#property_initialized", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "initTarget", "url": "YAHOO.util.DragDrop.html#method_initTarget", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "interactionInfo", "url": "YAHOO.util.DragDropMgr.html#property_interactionInfo", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "INTERSECT", "url": "YAHOO.util.DragDropMgr.html#property_INTERSECT", "type": "property"}, {"access": "", "host": "DD", "name": "invalidDropEvent", "url": "DD.html#event_invalidDropEvent", "type": "event"}, {"access": "", "host": "DDProxy", "name": "invalidDropEvent", "url": "DDProxy.html#event_invalidDropEvent", "type": "event"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "invalidDropEvent", "url": "YAHOO.util.DragDrop.html#event_invalidDropEvent", "type": "event"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "invalidHandleClasses", "url": "YAHOO.util.DragDrop.html#property_invalidHandleClasses", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "invalidHandleIds", "url": "YAHOO.util.DragDrop.html#property_invalidHandleIds", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "invalidHandleTypes", "url": "YAHOO.util.DragDrop.html#property_invalidHandleTypes", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "isDragDrop", "url": "YAHOO.util.DragDropMgr.html#method_isDragDrop", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "isHandle", "url": "YAHOO.util.DragDropMgr.html#method_isHandle", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "isLegalTarget", "url": "YAHOO.util.DragDropMgr.html#method_isLegalTarget", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "isLocked", "url": "YAHOO.util.DragDrop.html#method_isLocked", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "isLocked", "url": "YAHOO.util.DragDropMgr.html#method_isLocked", "type": "method"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "isOverTarget", "url": "YAHOO.util.DragDropMgr.html#method_isOverTarget", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "isTarget", "url": "YAHOO.util.DragDrop.html#property_isTarget", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "isTypeOfDD", "url": "YAHOO.util.DragDropMgr.html#method_isTypeOfDD", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "isValidHandleChild", "url": "YAHOO.util.DragDrop.html#method_isValidHandleChild", "type": "method"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "locationCache", "url": "YAHOO.util.DragDropMgr.html#property_locationCache", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "lock", "url": "YAHOO.util.DragDrop.html#method_lock", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "lock", "url": "YAHOO.util.DragDropMgr.html#method_lock", "type": "method"}, {"access": "private", "host": "YAHOO.util.DragDrop", "name": "locked", "url": "YAHOO.util.DragDrop.html#property_locked", "type": "property"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "locked", "url": "YAHOO.util.DragDropMgr.html#property_locked", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "maintainOffset", "url": "YAHOO.util.DragDrop.html#property_maintainOffset", "type": "property"}, {"access": "private", "host": "YAHOO.util.DragDrop", "name": "maxX", "url": "YAHOO.util.DragDrop.html#property_maxX", "type": "property"}, {"access": "private", "host": "YAHOO.util.DragDrop", "name": "maxY", "url": "YAHOO.util.DragDrop.html#property_maxY", "type": "property"}, {"access": "private", "host": "YAHOO.util.DragDrop", "name": "minX", "url": "YAHOO.util.DragDrop.html#property_minX", "type": "property"}, {"access": "private", "host": "YAHOO.util.DragDrop", "name": "minY", "url": "YAHOO.util.DragDrop.html#property_minY", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "mode", "url": "YAHOO.util.DragDropMgr.html#property_mode", "type": "property"}, {"access": "", "host": "DD", "name": "mouseDownEvent", "url": "DD.html#event_mouseDownEvent", "type": "event"}, {"access": "", "host": "DDProxy", "name": "mouseDownEvent", "url": "DDProxy.html#event_mouseDownEvent", "type": "event"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "mouseDownEvent", "url": "YAHOO.util.DragDrop.html#event_mouseDownEvent", "type": "event"}, {"access": "", "host": "DD", "name": "mouseUpEvent", "url": "DD.html#event_mouseUpEvent", "type": "event"}, {"access": "", "host": "DDProxy", "name": "mouseUpEvent", "url": "DDProxy.html#event_mouseUpEvent", "type": "event"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "mouseUpEvent", "url": "YAHOO.util.DragDrop.html#event_mouseUpEvent", "type": "event"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "moveToEl", "url": "YAHOO.util.DragDropMgr.html#method_moveToEl", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "numericSort", "url": "YAHOO.util.DragDropMgr.html#method_numericSort", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "on", "url": "YAHOO.util.DragDrop.html#method_on", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "onAvailable", "url": "YAHOO.util.DragDrop.html#method_onAvailable", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "onDrag", "url": "YAHOO.util.DragDrop.html#method_onDrag", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "onDragDrop", "url": "YAHOO.util.DragDrop.html#method_onDragDrop", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "onDragEnter", "url": "YAHOO.util.DragDrop.html#method_onDragEnter", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "onDragOut", "url": "YAHOO.util.DragDrop.html#method_onDragOut", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "onDragOver", "url": "YAHOO.util.DragDrop.html#method_onDragOver", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "onInvalidDrop", "url": "YAHOO.util.DragDrop.html#method_onInvalidDrop", "type": "method"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "_onLoad", "url": "YAHOO.util.DragDropMgr.html#method__onLoad", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "onMouseDown", "url": "YAHOO.util.DragDrop.html#method_onMouseDown", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "onMouseUp", "url": "YAHOO.util.DragDrop.html#method_onMouseUp", "type": "method"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "_onResize", "url": "YAHOO.util.DragDropMgr.html#method__onResize", "type": "method"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "_onUnload", "url": "YAHOO.util.DragDropMgr.html#method__onUnload", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "overlap", "url": "YAHOO.util.DragDrop.html#property_overlap", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "padding", "url": "YAHOO.util.DragDrop.html#property_padding", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "POINT", "url": "YAHOO.util.DragDropMgr.html#property_POINT", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "preventDefault", "url": "YAHOO.util.DragDropMgr.html#property_preventDefault", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "primaryButtonOnly", "url": "YAHOO.util.DragDrop.html#property_primaryButtonOnly", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "refreshCache", "url": "YAHOO.util.DragDropMgr.html#method_refreshCache", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "regDragDrop", "url": "YAHOO.util.DragDropMgr.html#method_regDragDrop", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "regHandle", "url": "YAHOO.util.DragDropMgr.html#method_regHandle", "type": "method"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "_remove", "url": "YAHOO.util.DragDropMgr.html#method__remove", "type": "method"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "removeDDFromGroup", "url": "YAHOO.util.DragDropMgr.html#method_removeDDFromGroup", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "removeFromGroup", "url": "YAHOO.util.DragDrop.html#method_removeFromGroup", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "removeInvalidHandleClass", "url": "YAHOO.util.DragDrop.html#method_removeInvalidHandleClass", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "removeInvalidHandleId", "url": "YAHOO.util.DragDrop.html#method_removeInvalidHandleId", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "removeInvalidHandleType", "url": "YAHOO.util.DragDrop.html#method_removeInvalidHandleType", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "resetConstraints", "url": "YAHOO.util.DragDrop.html#method_resetConstraints", "type": "method"}, {"access": "", "host": "DDProxy", "name": "resizeFrame", "url": "DDProxy.html#property_resizeFrame", "type": "property"}, {"access": "private", "host": "DDProxy", "name": "_resizeProxy", "url": "DDProxy.html#method__resizeProxy", "type": "method"}, {"access": "", "host": "DD", "name": "scroll", "url": "DD.html#property_scroll", "type": "property"}, {"access": "", "host": "DD", "name": "setDelta", "url": "DD.html#method_setDelta", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "setDragElId", "url": "YAHOO.util.DragDrop.html#method_setDragElId", "type": "method"}, {"access": "", "host": "DD", "name": "setDragElPos", "url": "DD.html#method_setDragElPos", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "setHandleElId", "url": "YAHOO.util.DragDrop.html#method_setHandleElId", "type": "method"}, {"access": "private", "host": "YAHOO.util.DragDrop", "name": "setInitialPosition", "url": "YAHOO.util.DragDrop.html#method_setInitialPosition", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "setOuterHandleElId", "url": "YAHOO.util.DragDrop.html#method_setOuterHandleElId", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "setPadding", "url": "YAHOO.util.DragDrop.html#method_setPadding", "type": "method"}, {"access": "private", "host": "YAHOO.util.DragDrop", "name": "setStartPosition", "url": "YAHOO.util.DragDrop.html#method_setStartPosition", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "setXConstraint", "url": "YAHOO.util.DragDrop.html#method_setXConstraint", "type": "method"}, {"access": "private", "host": "YAHOO.util.DragDrop", "name": "setXTicks", "url": "YAHOO.util.DragDrop.html#method_setXTicks", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "setYConstraint", "url": "YAHOO.util.DragDrop.html#method_setYConstraint", "type": "method"}, {"access": "private", "host": "YAHOO.util.DragDrop", "name": "setYTicks", "url": "YAHOO.util.DragDrop.html#method_setYTicks", "type": "method"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "_shim", "url": "YAHOO.util.DragDropMgr.html#property__shim", "type": "property"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "_shimActive", "url": "YAHOO.util.DragDropMgr.html#property__shimActive", "type": "property"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "_shimState", "url": "YAHOO.util.DragDropMgr.html#property__shimState", "type": "property"}, {"access": "private", "host": "DDProxy", "name": "showFrame", "url": "DDProxy.html#method_showFrame", "type": "method"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "_sizeShim", "url": "YAHOO.util.DragDropMgr.html#method__sizeShim", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "startDrag", "url": "YAHOO.util.DragDrop.html#method_startDrag", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "startDrag", "url": "YAHOO.util.DragDropMgr.html#method_startDrag", "type": "method"}, {"access": "", "host": "DD", "name": "startDragEvent", "url": "DD.html#event_startDragEvent", "type": "event"}, {"access": "", "host": "DDProxy", "name": "startDragEvent", "url": "DDProxy.html#event_startDragEvent", "type": "event"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "startDragEvent", "url": "YAHOO.util.DragDrop.html#event_startDragEvent", "type": "event"}, {"access": "private", "host": "YAHOO.util.DragDrop", "name": "startPageX", "url": "YAHOO.util.DragDrop.html#property_startPageX", "type": "property"}, {"access": "private", "host": "YAHOO.util.DragDrop", "name": "startPageY", "url": "YAHOO.util.DragDrop.html#property_startPageY", "type": "property"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "startX", "url": "YAHOO.util.DragDropMgr.html#property_startX", "type": "property"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "startY", "url": "YAHOO.util.DragDropMgr.html#property_startY", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "stopDrag", "url": "YAHOO.util.DragDropMgr.html#method_stopDrag", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "stopEvent", "url": "YAHOO.util.DragDropMgr.html#method_stopEvent", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "stopPropagation", "url": "YAHOO.util.DragDropMgr.html#property_stopPropagation", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "STRICT_INTERSECT", "url": "YAHOO.util.DragDropMgr.html#property_STRICT_INTERSECT", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "swapNode", "url": "YAHOO.util.DragDropMgr.html#method_swapNode", "type": "method"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "_timeoutCount", "url": "YAHOO.util.DragDropMgr.html#property__timeoutCount", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "toString", "url": "YAHOO.util.DragDrop.html#method_toString", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "unlock", "url": "YAHOO.util.DragDrop.html#method_unlock", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "unlock", "url": "YAHOO.util.DragDropMgr.html#method_unlock", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "unreg", "url": "YAHOO.util.DragDrop.html#method_unreg", "type": "method"}, {"access": "private", "host": "YAHOO.util.DragDropMgr", "name": "unregAll", "url": "YAHOO.util.DragDropMgr.html#method_unregAll", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "useCache", "url": "YAHOO.util.DragDropMgr.html#property_useCache", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "useShim", "url": "YAHOO.util.DragDrop.html#property_useShim", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "useShim", "url": "YAHOO.util.DragDropMgr.html#property_useShim", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDropMgr", "name": "verifyEl", "url": "YAHOO.util.DragDropMgr.html#method_verifyEl", "type": "method"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "xTicks", "url": "YAHOO.util.DragDrop.html#property_xTicks", "type": "property"}, {"access": "", "host": "DDProxy", "name": "YAHOO.util.DDProxy.dragElId", "url": "DDProxy.html#property_YAHOO.util.DDProxy.dragElId", "type": "property"}, {"access": "private", "host": "YAHOO.util.DragDrop", "name": "__ygDragDrop", "url": "YAHOO.util.DragDrop.html#property___ygDragDrop", "type": "property"}, {"access": "", "host": "YAHOO.util.DragDrop", "name": "yTicks", "url": "YAHOO.util.DragDrop.html#property_yTicks", "type": "property"}];
</script>
</body>
</html>
